中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]set/p=**<nul 作输出时 <nul 表示什么?
作者:
标题: [已结]set/p=**<nul 作输出时 <nul 表示什么? 上一主题 | 下一主题
skuny
初级用户





积分 28
发帖 20
注册 2008-12-4
状态 离线
『楼 主』:  [已结]set/p=**<nul 作输出时 <nul 表示什么?

如:
@echo off
set str=!好你,,,,
for /l %%a in (6 -1 0) do call set /p=%%str:~%%a,1%%<nul
echo.&pause
有<nul就输出 ,,,,你好!
没有<nul就输出 ,

为什么?
<nul表示什么意思?

[ Last edited by HAT on 2009-1-9 at 12:32 ]

2009-1-8 14:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
linee
初级用户





积分 94
发帖 49
注册 2008-12-14
状态 离线
『第 2 楼』:  

<nul 表示从空设备输入
相当于echo不换行的效果

   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2009-1-9 12:32


2009-1-8 15:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
skuny
初级用户





积分 28
发帖 20
注册 2008-12-4
状态 离线
『第 3 楼』:  

没有<nul那么输出的应该是







为什么for循环没有执行下去。只输出了,

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





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



  Quote:
Originally posted by skuny at 2009-1-9 10:25 AM:
没有<nul那么输出的应该是







为什么for循环没有执行下去。只输出了,

你被 <nul 弄糊涂了 ^_^ 先回到最基本的命令:
set /p input=请输入:
以上命令能理解吧?即,暂停等待用户输入,所以你所说的“去掉 <nul”,当然不会再执行下去,而是等待用户输入;

< 是一个“输入”符号,所以 <nul 代替了手工输入,从而结束了这条命令;

至于不会换行,是由于没有输入回车符


理解了上述原因后,试试执行以下两条命令,也会有不换行的效果:
set /p=不换行<test.txt

echo a|set /p=不换行


   此帖被 +4 点积分     点击查看详情   
评分人:【 HAT 分数: +2  时间:2009-1-9 12:33
评分人:【 skuny 分数: +2  时间:2009-1-9 13:40


2009-1-9 12:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
skuny
初级用户





积分 28
发帖 20
注册 2008-12-4
状态 离线
『第 5 楼』:  

*^_^*!!!!谢谢!!

解惑了

2009-1-9 12:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: