例如:(我是在windows命令提示符中用的)
例1:
more < f:turboc2readme
more的输入来自 c:tcreadme 文件内容多。这个命令与
type f:turboc2readme | more
作用相同,但更简洁,效率也更高。
例2:(注cmd重定向进入后用exit返回原目录)
cmd > file 把 stdout 重定向到 file 文件中
cmd >> file 把 stdout 重定向到 file 文件中(追加)
cmd 1> file 把 stdout 重定向到 file 文件中
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中
cmd 2> file 把 stderr 重定向到 file 文件中
cmd 2>> file 把 stderr 重定向到 file 文件中(追加)
cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中
cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout
注:>&n 使用系统复制文件描述符 n 并把结果用作标准输出
<&n 标准输入复制自文件描述符 n
<&- 关闭标准输入(键盘)
>&- 关闭标准输出
n<&- 表示将 n 号输入关闭
n>&- 表示将 n 号输出关闭
&> 同时实现输出重定向和错误重定向
用 途:DOS的标准输入输出通常是在标准设备键盘和显示器上进行的, 利用重定向,可以方便地将输入输出改向磁盘文件或其它设备。如在批处理命令执行期间为了禁止命令或程序执行后输出信息而扰乱屏幕, 可用DOS重定向功能把输出改向NUL设备(NUL不指向任何实际设备): C:>copy a.txt b.txt > NUL。命令执行结束不显示"1 file(s) copied"的信息。有的交互程序在执行时要求很多键盘输入, 但有时输入是固定不变的, 为加快运行速度, 可预先建立一个输入文件,此文件的内容为程序的键盘输入项, 每个输入项占一行。假如有一个程序cx 其输入项全部包括在文件in.dat中, 执行 C:>cx <in.dat>NUL 程序就自动执行。
二、 管道:
进 程从“管道”的一端发送另一端接收,也就是说将若干命令用输入输出“管道”串接在一起,这就是管道;管道在某种程度上是输入和输出重定向的结合,前一个命 令的输出,作为下一个命令的输入,而不需要经过任何中间文件。竖线字符“|”是管道操作符,管道命令经常与上面讲的过滤命令联合使用。DOS的管道功能是 使一个程序或命令的标准输出用做另一个程序或命令的标准输入。如把DEBUG的输入命令写入文件aaa, 用type命令通过管道功能将aaa的内容传输给DEBUG, 在DEBUG执行期间不再从控制台索取命令参数, 从而提高了机器效率。
命令为: C:>type aaa|DEBUG >bbb。
例如,这是我以前看到的例子。命令dir|more使得当前目录列表在屏幕上逐屏 显示。dir的输出是整个目录列表,它不出现在屏幕上而是由于符号“|”的规定,成为下一个命令more的输入,more命令则将其输入,more命令则 将其输入一屏一屏地显示,成为命令行的输出。再如命令dir|find”hello”>file,其中 dir的输出是当前目录列表,不出现在屏幕上而是成为find命令的输入。find命令在输入文件中寻找指定字符串"hello"并输出包含这个字符串的 行,由于输出重定向符号>的规定,最后的输出已存入文件file,不出现在屏幕上。命令dir|find"< dir >file则是将当前目录项中的子目录项寻找出来并存入文件file中。









