中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 代码(1)和代码(2)中a的用法,我看不太明白!
« [1] [2] »
作者:
标题: 代码(1)和代码(2)中a的用法,我看不太明白! 上一主题 | 下一主题
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
状态 离线
『第 3 楼』:  

我杂看2个一样~~好晕~

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
状态 离线
『第 9 楼』:  

那个要FOR吧?

2008-5-7 20:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wujingyi
初级用户





积分 47
发帖 46
注册 2008-1-17
状态 离线
『第 10 楼』:  

代码是怎样的,谁能贴出来呀!

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
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 15 楼』:  

都是变量,没看见有啥区别……

2008-5-8 21:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: