中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-09 00:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决][求助]古怪的输入输出句柄应用 查看 945 回复 8
楼 主 [已解决][求助]古怪的输入输出句柄应用 发表于 2008-10-12 01:51 ·  中国 贵州 黔西南布依族苗族自治州 兴义市 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
在网上看到的一段代码,如下:
@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 ]
2 发表于 2008-10-12 02:05 ·  中国 云南 昆明 电信
中级用户
★★
积分 220
发帖 99
注册 2008-06-26 15:12
18年会员
UID 120818
性别 男
状态 离线
1>nul 不显示错误信息并输出到空设备
3>2.txt ? 打印3到2.txt ?
echo. 1>con 4>con 打印一行到标准输入设备吧..
也不是太清楚.
3 发表于 2008-10-12 10:54 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
楼上解释有误。

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

echo a>o.txt

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

C:\>echo a 1>o.txt

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

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

2>nul 是屏蔽错误输出。
4 发表于 2008-10-12 11:02 ·  中国 北京 大兴区 联通
初级用户
积分 50
发帖 19
注册 2008-02-09 22:04
18年会员
UID 110396
性别 男
状态 离线
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
s11ss +5 2008-10-12 21:31
wxcute +4 2008-11-03 20:19
5 发表于 2008-10-12 11:07 ·  中国 北京 大兴区 联通
初级用户
积分 50
发帖 19
注册 2008-02-09 22:04
18年会员
UID 110396
性别 男
状态 离线
这涉及到“句柄备份”理论。
echo. 1>nul 3>2.txt 这句其实是使标准输出流的默认指向由原来的con变为2.txt。
6 发表于 2008-10-12 11:10 ·  中国 北京 大兴区 联通
初级用户
积分 50
发帖 19
注册 2008-02-09 22:04
18年会员
UID 110396
性别 男
状态 离线
echo. 1>con 4>con是恢复标准输出流原来的默认指向即con
7 发表于 2008-10-12 21:00 ·  中国 贵州 黔西南布依族苗族自治州 兴义市 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
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兄的第一条链接是?
8 Re 7楼 发表于 2008-10-12 21:07 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
s11ss +3 2008-10-12 21:31
9 发表于 2008-10-13 12:35 ·  中国 北京 大兴区 联通
初级用户
积分 50
发帖 19
注册 2008-02-09 22:04
18年会员
UID 110396
性别 男
状态 离线
是,疏忽了。
论坛跳转: