|
pfjuifv
初级用户
积分 68
发帖 15
注册 2005-11-23
状态 离线
|
『楼 主』:
请高手解释一下关于句柄输出的问题
>&,将一个句柄的输出写入到另一个句柄的输入中。
<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。
这个我不是很明白怎么用能给解释一下吗?
来个列子吧?
──────────────── 版务记录 ────────────────
执行:namejm
原标题:请高手给解释一下?
现标题:请高手解释一下关于句柄输出的问题
说明:因原标题过于模糊,不便于论坛的搜索和管理,在本提示发表三日之后,
楼主尚未更改标题,现由本人强制修改标题,并扣除楼主4点积分。
──────────────── 版务记录 ────────────────
[ Last edited by namejm on 2006-10-19 at 01:12 ]
此帖被 -2 点积分 点击查看详情 评分人:【 namejm 】 | 分数: -4 | 时间:2006-10-19 01:12 | 评分人:【 kootoo 】 | 分数: +2 | 时间:2007-12-27 22:29 |
|
|
|
2006-10-3 05:52 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
2 楼』:
是> 不是 >&吧?
ECHO HELLO > FILE.TXT
把HELLO存到文件
DEBUG < DEBUGBAT.BAT (DEBUG代码)
运行DEBUG脚本
DEBUG < DEBUGIN.BAT > DEBUGOUT.TXT
运行DEBUG脚本,并把输出结果存到文件
还有管道符号 |,把前面的输出作为后面的输入
ECHO Y | DEL *.*
用Y字符作为DEL *.* 的 询问的应答
[ Last edited by GOTOmsdos on 2006-10-3 at 06:29 ]
|
|
2006-10-3 06:27 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-10-3 06:41 |
|
|
pengfei
银牌会员
积分 1218
发帖 485
注册 2006-7-21 来自 湖南.娄底
状态 离线
|
『第
4 楼』:
举个例子, 如:命令正确执行就是句柄1, 命令执行不成功就是句柄2.
请先运行这一段代码试试:
@echo off
dir /b ???.txt>file.txt
pause
运行后cmd窗口显示找不到文件. file.txt文件为空.
这说明命令正确执行返回的数据将重定向到file.txt中(也就是句柄1), 因为找不到文件句柄1也没有数据写入文本.
而执行不成功将显示错误信息, 也就是找不到文件(为句柄2) 这一段是句柄2的复制到句柄1.
运行后cmd窗口没有任何信息显示, 而找不到文件的提示会写入到file.txt中. 很显然句柄2被复制到句柄1中写入file.txt中.
@echo off
dir /b ???.txt>file.txt 2>&1
pause 我也不知道分析得对不对, 期待高手出来解惑...
|
|
2006-10-3 07:14 |
|
|
pengfei
银牌会员
积分 1218
发帖 485
注册 2006-7-21 来自 湖南.娄底
状态 离线
|
『第
5 楼』:
@echo off
echo.>mu.txt
dir /b mu.txt>file.txt
pause
运行这一段代码的结果是, 找到mu.txt(句柄1)写入到file.txt中. cmd窗口没有显示错误信息(句柄2). 因为是正常执行, 所以句柄1为mu.txt, 而句柄2为空.
运行这一段前请将file.txt删除.
@echo off
echo.>mu.txt
dir /b mu.txt>file.txt 1>&2
pause
运行结果是没有生成file.txt, 而是在cmd窗口显示mu.txt. 因为1>&2这一句将句柄1重定向到句柄2中, 也就是句柄1没有重定向到file.txt中, 而是显示在cmd窗口中.
|
|
2006-10-3 07:26 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
6 楼』:
其实 ECHO HELLO> FILE.TXT 后
FILE.TXT里面仍然多个回车和换行的。。
共7个字节,而不是5个
|
|
2006-10-3 08:18 |
|
|
pengfei
银牌会员
积分 1218
发帖 485
注册 2006-7-21 来自 湖南.娄底
状态 离线
|
『第
7 楼』:
呵呵~ 是多了个回车符, 2个字节.
@echo off
dir /b yyyyy.txt 1>1.txt 2>2.txt
pause
这一段句柄1重定向到1.txt为零字节. 句柄2为找不到文件.
[ Last edited by pengfei on 2006-10-3 at 08:33 ]
|
|
2006-10-3 08:22 |
|
|
pfjuifv
初级用户
积分 68
发帖 15
注册 2005-11-23
状态 离线
|
『第
8 楼』:
还有一个我不是很明白的就%1 %%i 这两个%是什么意思?
|
|
2006-10-3 08:54 |
|