Board logo

标题: 代码(1)和代码(2)中a的用法,我看不太明白! [打印本页]

作者: wujingyi     时间: 2008-5-7 19:28    标题: 代码(1)和代码(2)中a的用法,我看不太明白!
代码一: CODE: [Copy to clipboard] -------------------------------------------------------------------------------- ::::::::::::::::::: @echo off set /p a=<%0 echo %a%&pause>nul 代码二: CODE: [Copy to clipboard] -------------------------------------------------------------------------------- ::::::&color 02 @echo off set /p a=<%0 echo %a%&pause>nul 代码(1)和代码(2)中a的用法,我看不太明白,谁能帮我解释一下呢!

作者: pusofalse     时间: 2008-5-7 19:54
从批处理自身中取值,第一段代码会输出::::::::::::::::::: 第二段会输出:::::: a只是一个变量。。。可以换成其他字符,但最后的echo %a% 也要改变。。- -||| 不知这样说能明白否~?

作者: slore     时间: 2008-5-7 19:56
我杂看2个一样~~好晕~

作者: wujingyi     时间: 2008-5-7 20:01
set /p a=<%0什么意思,不懂!

作者: pusofalse     时间: 2008-5-7 20:10
Originally posted by wujingyi at 2008-5-7 08:01 PM: set /p a=<%0什么意思,不懂!
定义一个变量a a的值是从批处理自身中取得的第一行。。。 %0 代表批处理自身。。/p 参数是用户输入的内容。。。有了这个"<" 就不必用户输入,自动从自身中取值了~ "<" 是定向输入。。。 set/? 可以查看set的用法 另外请教一下高手,代码二中的color 02 是不是执行了两次~?

作者: jy02141405     时间: 2008-5-7 20:15
< 的意思是把 后面的值赋予前面 %0是自身的意思, <%0 的意思就是把批处理自身赋予变量a

作者: slore     时间: 2008-5-7 20:15
你运行了还不知道? ::::::=。=我是第一行~~ @echo off set /p a=<%0 echo %a%&pause>nul

作者: wujingyi     时间: 2008-5-7 20:16
定义一个变量a a的值是从批处理自身中取得的第一行。。。
定义一个变量a a的值是从批处理自身中取得的第一行。。。 如果我要取得批处理自身的第二行,该怎么写呢?

作者: slore     时间: 2008-5-7 20:20
那个要FOR吧?

作者: wujingyi     时间: 2008-5-7 20:23
代码是怎样的,谁能贴出来呀!

作者: slore     时间: 2008-5-7 20:30
@echo off for /f "skip=1 delims=" %%i in (%~s0) do ( Set a=%%i GoTo :ExitFor ) :ExitFor echo %a% pause>nul

作者: pusofalse     时间: 2008-5-7 20:34
果真代码二中的color 02执行了2次。。。

作者: slore     时间: 2008-5-7 20:44
把@echo off去掉就知道了……

作者: Climbing     时间: 2008-5-8 16:17
两个代码有什么区别吗? set /p a=< %0 set /p a=应该知道是什么意思吧,就是提示用户输入,并将输入内容放到a这个环境变量中。 后面的<,这是一个转向符,表示将标准输入转向后面的%0,而%0则代表批处理本身,这样,批处理本身的第一行就变成了a的内容。 后面的echo %a% & pause >nul就是显示a这个环境变量的内容(也就是批处理的第一行)然后暂停。

作者: lxmxn     时间: 2008-5-8 21:17
都是变量,没看见有啥区别……

作者: bearingxm     时间: 2008-5-24 01:42
就是把本身的文件名赋值给a 运行看 结果就知道了