找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30199|回复: 8

[特效代码] 请教一下该批处理第一行和第三行是什么意思

[复制链接]
发表于 2012-6-18 10:14:35 | 显示全部楼层 |阅读模式
  1. :?^~!#$%^&*()='"><|/@\
  2. @echo off
  3. set/p str=<%~fs0
  4. setlocal enabledelayedexpansion
  5. for /l %%a in (1 1 10) do (
  6.      for /l %%i in (1 1 30) do (
  7.           set/a n=!random!%%22
  8.           call :lp
  9.      )
  10.      echo !var!&set "var="
  11. )
  12. pause>nul&exit/b
  13. :lp
  14. set "var=!var!!str:~%n%,1!"
复制代码
发表于 2012-6-18 10:20:35 | 显示全部楼层
在bat文件本身的首行放置一个字符串:
?^~!#$%^&*()='"><|/@\

然后把这个字符串的内容赋值给变量str
 楼主| 发表于 2012-6-18 10:24:34 | 显示全部楼层
在bat文件本身的首行放置一个字符串:
?^~!#$%^&*()='">
forfiles 发表于 2012-6-18 10:20



    放置字符串?应该怎么理解???
发表于 2012-6-18 10:40:21 | 显示全部楼层
回复 3# 咒夜坠


    :是个特殊字符,bat在解释执行的时候不会运行它后面的内容。
发表于 2012-6-18 12:49:45 | 显示全部楼层
本帖最后由 cb02356828 于 2012-6-18 12:51 编辑

: 是标签,将各种符号放在第一句标签里是防止被转义吧
< 给变量从文件(%~fs0表示批处理文件本身,用的是短文件名)赋值时只取文件第一行
发表于 2012-6-18 12:56:07 | 显示全部楼层
:(冒号)加后面的字符组成标签,就像代码中有一行 P 也是一个标签
第一行这个标签比较特殊,后面是一些特殊字符,整个批处理也没有调用到这个标签。

而第三行作用是将文件(%~fs0)的第一个非空行读取到变量 STR 中。因 %~fs0指的是批处理自身,所以就把第一行内容 “:?^~!#$%^&*()='"><|/@\” 整个赋值给了 STR 变量了。
发表于 2012-6-18 13:21:08 | 显示全部楼层
回复 7# cutebe


    %0 和 %~fs0 其别是什么呢 ? %0不也是自身吗?
发表于 2012-6-18 13:32:02 | 显示全部楼层
%~fs0 是完整路径的短文件名
%0 是文件名或完整路径名

为了防止因目录改变(CD 新目录)而无法调用自身,使用 %~fs0 显然更不容易出错。
 楼主| 发表于 2012-7-30 16:58:55 | 显示全部楼层
回复 9# cutebe


    那这样说如果我要引用第二行或第三行应该如何累加呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 09:02 , Processed in 0.019937 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表