|
wujingyi
初级用户
积分 47
发帖 46
注册 2008-1-17
状态 离线
|
『楼 主』:
代码(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的用法,我看不太明白,谁能帮我解释一下呢!
|
|
2008-5-7 19:28 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
2 楼』:
从批处理自身中取值,第一段代码会输出:::::::::::::::::::
第二段会输出::::::
a只是一个变量。。。可以换成其他字符,但最后的echo %a% 也要改变。。- -|||
不知这样说能明白否~?
|
|
2008-5-7 19:54 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
|
2008-5-7 19:56 |
|
|
wujingyi
初级用户
积分 47
发帖 46
注册 2008-1-17
状态 离线
|
『第
4 楼』:
set /p a=<%0什么意思,不懂!
|
|
2008-5-7 20:01 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by wujingyi at 2008-5-7 08:01 PM:
set /p a=<%0什么意思,不懂! |
|
定义一个变量a a的值是从批处理自身中取得的第一行。。。 %0 代表批处理自身。。/p 参数是用户输入的内容。。。有了这个"<" 就不必用户输入,自动从自身中取值了~ "<" 是定向输入。。。
set/? 可以查看set的用法
另外请教一下高手,代码二中的color 02 是不是执行了两次~?
|
|
2008-5-7 20:10 |
|
|
jy02141405
初级用户
积分 97
发帖 34
注册 2007-11-16
状态 离线
|
『第
6 楼』:
< 的意思是把 后面的值赋予前面 %0是自身的意思,
<%0 的意思就是把批处理自身赋予变量a
|
|
2008-5-7 20:15 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
7 楼』:
你运行了还不知道?
::::::=。=我是第一行~~
@echo off
set /p a=<%0
echo %a%&pause>nul
|
|
2008-5-7 20:15 |
|
|
wujingyi
初级用户
积分 47
发帖 46
注册 2008-1-17
状态 离线
|
『第
8 楼』:
Quote: | 定义一个变量a a的值是从批处理自身中取得的第一行。。。 |
|
定义一个变量a a的值是从批处理自身中取得的第一行。。。
如果我要取得批处理自身的第二行,该怎么写呢?
|
|
2008-5-7 20:16 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
|
2008-5-7 20:20 |
|
|
wujingyi
初级用户
积分 47
发帖 46
注册 2008-1-17
状态 离线
|
|
2008-5-7 20:23 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
11 楼』:
@echo off
for /f "skip=1 delims=" %%i in (%~s0) do (
Set a=%%i
GoTo :ExitFor
)
:ExitFor
echo %a%
pause>nul
|
|
2008-5-7 20:30 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
12 楼』:
果真代码二中的color 02执行了2次。。。
|
|
2008-5-7 20:34 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
13 楼』:
把@echo off去掉就知道了……
|
|
2008-5-7 20:44 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
14 楼』:
两个代码有什么区别吗?
set /p a=< %0
set /p a=应该知道是什么意思吧,就是提示用户输入,并将输入内容放到a这个环境变量中。
后面的<,这是一个转向符,表示将标准输入转向后面的%0,而%0则代表批处理本身,这样,批处理本身的第一行就变成了a的内容。
后面的echo %a% & pause >nul就是显示a这个环境变量的内容(也就是批处理的第一行)然后暂停。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2008-5-8 16:17 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2008-5-8 21:17 |
|