中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]这两句(一个字一个字显示的代码)怎么理解
作者:
标题: [已解决]这两句(一个字一个字显示的代码)怎么理解 上一主题 | 下一主题
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『楼 主』:  [已解决]这两句(一个字一个字显示的代码)怎么理解


@echo off
set /p=<nul
for %%a in (做 个 语 文 老 师 真 不 容 易 . 以 下 是 学 生 的 造 句 ) do set /p=%%a<nul&ping -n 1 127.1>nul
[ Last edited by tireless on 2008-9-26 at 08:18 AM ]

2008-9-25 13:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  

这样呢?
@echo off
for %%a in (做 个 语 文 老 师 真 不 容 易 . 以 下 是 学 生 的 造 句 ) do set /p=%%a<nul&ping -n 1 127.1>nul


2008-9-25 13:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 3 楼』:  

知道 set /p input=set var=test,但 set /p=test 怎么理解?

2008-9-25 14:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Vampire
初级用户





积分 176
发帖 78
注册 2007-4-15
状态 离线
『第 4 楼』:  

屏幕显示输入状态,并显示文字为TEST,但是没有变量名.

2008-9-25 14:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 5 楼』:  

ping -n 1 127.1>nul 能理解,是将 ping 的输出输出到空设备

但 set /p=%%a<nul 不太懂
< 是将其后面的文件的内容作为其前面命令的输入
无法理解..

运行以下命令:

set /p=1 <nul
set /p=2 <nul
pause

在屏幕上显示:

C:\>set /p=1  0<nul
1
C:\>set /p=2  0<nul
2
C:\>pause
请按任意键继续. . .

0 又是哪来的?

2008-9-25 15:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zqz0012005
中级用户




积分 297
发帖 135
注册 2006-10-21
状态 离线
『第 6 楼』:  

STDIN 0 键盘输入

命令解释器执行bat前要进行标准格式化,<nul其实就是0<nul,>nul就是1>nul
诸如此类



hh.exe ntcmds.chm::/ntcmds.htm
2008-9-25 16:57
查看资料  发短消息 网志  OICQ (411976538)  编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 7 楼』:  

你可以将代码改成如下测试便能理解大概..
@echo off
set /p=请输入内容 1<nul
set /p=请输入内容 2<nul
set /p=请输入内容 0<nul
pause

看看结果你就知道了.
事实上,可能我们平时直接<nul,默认的值是0,只是我们不用输入,是默认的.我理解大概是这样,然后1和2 呢也是相对能这样解释

2008-9-25 19:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ygrzzz
初级用户





积分 62
发帖 24
注册 2008-9-17
状态 离线
『第 8 楼』:  

set /p=%%a<nul  我理解是只显示提示“=后面的字符”,(这和set/p var=提示语,是相通的)
并且没有内容被输入而结束此命令语句
好处是这样的提示语能保持在同一行
如果后面跟个pause,连pause的提示也在这一行了
而echo必然会换行,在新行显示
1楼的 第2句我理解是多次连续左方向移动光标,此例中多余

[ Last edited by ygrzzz on 2008-9-25 at 11:09 PM ]

   此帖被 +1 点积分    点击查看详情   
评分人:【 tireless 分数: +1  时间:2008-11-18 11:00


2008-9-25 23:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: