中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 03:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]set/p=**<nul 作输出时 <nul 表示什么? 查看 785 回复 4
楼 主 [已结]set/p=**<nul 作输出时 <nul 表示什么? 发表于 2009-01-08 14:54 ·  中国 江苏 扬州 移动
初级用户
积分 28
发帖 20
注册 2008-12-04 19:57
17年会员
UID 132895
性别 男
状态 离线
如:
@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 ]
2 发表于 2009-01-08 15:02 ·  中国 贵州 安顺 电信
初级用户
积分 94
发帖 49
注册 2008-12-14 20:47
17年会员
UID 133884
性别 男
状态 离线
<nul 表示从空设备输入
相当于echo不换行的效果
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2009-01-09 12:32
3 发表于 2009-01-09 10:25 ·  中国 江苏 扬州 移动
初级用户
积分 28
发帖 20
注册 2008-12-04 19:57
17年会员
UID 132895
性别 男
状态 离线
没有<nul那么输出的应该是







为什么for循环没有执行下去。只输出了,
4 发表于 2009-01-09 12:06 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
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=不换行
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
HAT +2 2009-01-09 12:33
skuny +2 2009-01-09 13:40
5 发表于 2009-01-09 12:31 ·  中国 江苏 扬州 移动
初级用户
积分 28
发帖 20
注册 2008-12-04 19:57
17年会员
UID 132895
性别 男
状态 离线
*^_^*!!!!谢谢!!

解惑了
论坛跳转: