Board logo

标题: [已解决][求助]古怪的输入输出句柄应用 [打印本页]

作者: s11ss     时间: 2008-10-12 01:51    标题: [已解决][求助]古怪的输入输出句柄应用

在网上看到的一段代码,如下:
CODE:  [Copy to clipboard]
@echo off
echo. 1>nul 3>2.txt
for /f %%i in (1.txt) do set /p n=%%i<nul
echo. 1>con 4>con
echo 已书写完毕!
pause
作用是把1.txt中的多行内容整合成一行输出到2.txt。

请问其中的这两行如何解释:
echo. 1>nul 3>2.txt
echo. 1>con 4>con

[ Last edited by s11ss on 2008-10-12 at 21:51 ]
作者: 23112656     时间: 2008-10-12 02:05
1>nul  不显示错误信息并输出到空设备
3>2.txt ?  打印3到2.txt  ?
echo. 1>con 4>con 打印一行到标准输入设备吧..
也不是太清楚.
作者: tireless     时间: 2008-10-12 10:54
楼上解释有误。

如果 Test.bat 中有这一行内容:

echo a>o.txt

在提示符下输入 Test.bat,回车,可看到:

  Quote:
C:\>test.bat

C:\>echo a 1>o.txt

————————————————————————————————————————————————————————————————

>nul 对应于 1>nul
<nul 对应于 0<nul

2>nul 是屏蔽错误输出。
作者: xzyx     时间: 2008-10-12 11:02
可以参考
http://bbs.verybat.org/viewthrea ... a=page%3D1#pid81403
http://bbs.verybat.org/viewthread.php?tid=9744&extra=page%3D2
作者: xzyx     时间: 2008-10-12 11:07
这涉及到“句柄备份”理论。
echo. 1>nul 3>2.txt 这句其实是使标准输出流的默认指向由原来的con变为2.txt。
作者: xzyx     时间: 2008-10-12 11:10
echo. 1>con 4>con是恢复标准输出流原来的默认指向即con
作者: s11ss     时间: 2008-10-12 21:00


  Quote:
Originally posted by xzyx at 2008-10-12 11:02 AM:
可以参考
http://bbs.verybat.org/viewthrea ... a=page%3D1#pid81403
http://bbs.verybat.org/viewthread.php?tid=9744&extra=page%3D2

懵懂,xzyx兄的第一条链接是?
作者: HAT     时间: 2008-10-12 21:07    标题: Re 7楼

应该是这个吧:
http://bbs.verybat.org/viewthread.php?tid=9271
作者: xzyx     时间: 2008-10-13 12:35
是,疏忽了。




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5