Board logo

标题: [已结]set/p=**<nul 作输出时 <nul 表示什么? [打印本页]

作者: skuny     时间: 2009-1-8 14:54    标题: [已结]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 ]
作者: linee     时间: 2009-1-8 15:02
<nul 表示从空设备输入
相当于echo不换行的效果
作者: skuny     时间: 2009-1-9 10:25
没有<nul那么输出的应该是







为什么for循环没有执行下去。只输出了,
作者: tireless     时间: 2009-1-9 12:06


  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=不换行

作者: skuny     时间: 2009-1-9 12:31
*^_^*!!!!谢谢!!

解惑了