标题: 请高手解释一下关于句柄输出的问题
[打印本页]
作者: pfjuifv
时间: 2006-10-3 05:52
标题: 请高手解释一下关于句柄输出的问题
>&,将一个句柄的输出写入到另一个句柄的输入中。
<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。
这个我不是很明白怎么用能给解释一下吗?
来个列子吧?
──────────────── 版务记录 ────────────────
执行:namejm
原标题:请高手给解释一下?
现标题:请高手解释一下关于句柄输出的问题
说明:因原标题过于模糊,不便于论坛的搜索和管理,在本提示发表三日之后,
楼主尚未更改标题,现由本人强制修改标题,并扣除楼主4点积分。
──────────────── 版务记录 ────────────────
[
Last edited by namejm on 2006-10-19 at 01:12 ]
作者: GOTOmsdos
时间: 2006-10-3 06:27
是> 不是 >&吧?
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:41
ECHO HELLO > FILE.TXT会把HELLO和一个空格存到文件
要不把最后的空格存到文件就应该是ECHO HELLO> FILE.TXT
作者: pengfei
时间: 2006-10-3 07:14
举个例子, 如:命令正确执行就是句柄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
我也不知道分析得对不对, 期待高手出来解惑...
作者: pengfei
时间: 2006-10-3 07:26
@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窗口中.
作者: GOTOmsdos
时间: 2006-10-3 08:18
其实 ECHO HELLO> FILE.TXT 后
FILE.TXT里面仍然多个回车和换行的。。
共7个字节,而不是5个
作者: pengfei
时间: 2006-10-3 08:22
呵呵~ 是多了个回车符, 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 ]
作者: pfjuifv
时间: 2006-10-3 08:54
还有一个我不是很明白的就%1 %%i 这两个%是什么意思?