标题: 代码(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
Quote: |
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
Quote: |
定义一个变量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
运行看 结果就知道了