![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 17:19 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 代码(1)和代码(2)中a的用法,我看不太明白! |
| 可打印版本 1,756 / 15 |
| 第1楼 wujingyi | 发表于 2008-05-07 19:28 |
| 初级用户 发帖 46 积分 47 | |
|
代码(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的用法,我看不太明白,谁能帮我解释一下呢! |
|
| 第2楼 pusofalse | 发表于 2008-05-07 19:54 |
| 银牌会员 发帖 646 积分 1,604 | |
|
从批处理自身中取值,第一段代码会输出:::::::::::::::::::
第二段会输出:::::: a只是一个变量。。。可以换成其他字符,但最后的echo %a% 也要改变。。- -||| 不知这样说能明白否~? |
|
| 第3楼 slore | 发表于 2008-05-07 19:56 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
我杂看2个一样~~好晕~
|
|
| 第4楼 wujingyi | 发表于 2008-05-07 20:01 |
| 初级用户 发帖 46 积分 47 | |
|
set /p a=<%0什么意思,不懂!
|
|
| 第5楼 pusofalse | 发表于 2008-05-07 20:10 |
| 银牌会员 发帖 646 积分 1,604 | |
Originally posted by wujingyi at 2008-5-7 08:01 PM: 定义一个变量a a的值是从批处理自身中取得的第一行。。。 %0 代表批处理自身。。/p 参数是用户输入的内容。。。有了这个"<" 就不必用户输入,自动从自身中取值了~ "<" 是定向输入。。。 set/? 可以查看set的用法 另外请教一下高手,代码二中的color 02 是不是执行了两次~? |
|
| 第6楼 jy02141405 | 发表于 2008-05-07 20:15 |
| 初级用户 发帖 34 积分 97 | |
|
< 的意思是把 后面的值赋予前面 %0是自身的意思,
<%0 的意思就是把批处理自身赋予变量a |
|
| 第7楼 slore | 发表于 2008-05-07 20:15 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你运行了还不知道?
::::::=。=我是第一行~~ @echo off set /p a=<%0 echo %a%&pause>nul |
|
| 第8楼 wujingyi | 发表于 2008-05-07 20:16 |
| 初级用户 发帖 46 积分 47 | |
定义一个变量a a的值是从批处理自身中取得的第一行。。。 如果我要取得批处理自身的第二行,该怎么写呢? |
|
| 第9楼 slore | 发表于 2008-05-07 20:20 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
那个要FOR吧?
|
|
| 第10楼 wujingyi | 发表于 2008-05-07 20:23 |
| 初级用户 发帖 46 积分 47 | |
|
代码是怎样的,谁能贴出来呀!
|
|
| 第11楼 slore | 发表于 2008-05-07 20:30 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
@echo off
for /f "skip=1 delims=" %%i in (%~s0) do ( Set a=%%i GoTo :ExitFor ) :ExitFor echo %a% pause>nul |
|
| 第12楼 pusofalse | 发表于 2008-05-07 20:34 |
| 银牌会员 发帖 646 积分 1,604 | |
|
果真代码二中的color 02执行了2次。。。
|
|
| 第13楼 slore | 发表于 2008-05-07 20:44 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
把@echo off去掉就知道了……
|
|
| 第14楼 Climbing | 发表于 2008-05-08 16:17 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
两个代码有什么区别吗?
set /p a=< %0 set /p a=应该知道是什么意思吧,就是提示用户输入,并将输入内容放到a这个环境变量中。 后面的<,这是一个转向符,表示将标准输入转向后面的%0,而%0则代表批处理本身,这样,批处理本身的第一行就变成了a的内容。 后面的echo %a% & pause >nul就是显示a这个环境变量的内容(也就是批处理的第一行)然后暂停。 |
|
| 第15楼 lxmxn | 发表于 2008-05-08 21:17 |
| 版主 发帖 4,938 积分 11,386 | |
|
都是变量,没看见有啥区别……
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |