标题: [特效代码] 请教一下该批处理第一行和第三行是什么意思 [打印本页]
作者: 咒夜坠 时间: 2012-6-18 10:14 标题: 请教一下该批处理第一行和第三行是什么意思
- :?^~!#$%^&*()='"><|/@\
- @echo off
- set/p str=<%~fs0
- setlocal enabledelayedexpansion
- for /l %%a in (1 1 10) do (
- for /l %%i in (1 1 30) do (
- set/a n=!random!%%22
- call :lp
- )
- echo !var!&set "var="
- )
- pause>nul&exit/b
- :lp
- set "var=!var!!str:~%n%,1!"
复制代码
作者: forfiles 时间: 2012-6-18 10:20
在bat文件本身的首行放置一个字符串:
?^~!#$%^&*()='"><|/@\
然后把这个字符串的内容赋值给变量str
作者: 咒夜坠 时间: 2012-6-18 10:24
在bat文件本身的首行放置一个字符串:
?^~!#$%^&*()='">
forfiles 发表于 2012-6-18 10:20
放置字符串?应该怎么理解???
作者: forfiles 时间: 2012-6-18 10:40
回复 3# 咒夜坠
:是个特殊字符,bat在解释执行的时候不会运行它后面的内容。
作者: cb02356828 时间: 2012-6-18 12:49
本帖最后由 cb02356828 于 2012-6-18 12:51 编辑
: 是标签,将各种符号放在第一句标签里是防止被转义吧
< 给变量从文件(%~fs0表示批处理文件本身,用的是短文件名)赋值时只取文件第一行
作者: cutebe 时间: 2012-6-18 12:56
:(冒号)加后面的字符组成标签,就像代码中有一行 P 也是一个标签
第一行这个标签比较特殊,后面是一些特殊字符,整个批处理也没有调用到这个标签。
而第三行作用是将文件(%~fs0)的第一个非空行读取到变量 STR 中。因 %~fs0指的是批处理自身,所以就把第一行内容 “:?^~!#$%^&*()='"><|/@\” 整个赋值给了 STR 变量了。
作者: missll 时间: 2012-6-18 13:21
回复 7# cutebe
%0 和 %~fs0 其别是什么呢 ? %0不也是自身吗?
作者: cutebe 时间: 2012-6-18 13:32
%~fs0 是完整路径的短文件名
%0 是文件名或完整路径名
为了防止因目录改变(CD 新目录)而无法调用自身,使用 %~fs0 显然更不容易出错。
作者: 咒夜坠 时间: 2012-7-30 16:58
回复 9# cutebe
那这样说如果我要引用第二行或第三行应该如何累加呢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |