|
无妄★模拟
初级用户
蝎蛇统领
积分 280
发帖 35
注册 2003-5-21
状态 离线
|
『楼 主』:
[求助]关于“|”和“"的使用方法疑问?
各位高手,我想请教一下,DOS中的管道命令和”"我怎么也用不好,能不能给我详细的说明一下啊!!求您们了啊~最好是举例说明,好吗!
|
我是菜鸟,我要变成老鸟!
www.10.164.63.101.com |
|
2004-4-12 00:00 |
|
|
rsjd
初级用户
积分 200
发帖 47
注册 2003-7-13
状态 离线
|
『第
2 楼』:
我来转贴一篇文章,讲得很透彻:
DOS允许在命令中出现用竖线字符“|”分开的多个命令,将符号“|”之前的命令的输出,作为“|”之后命令的输入,这就是“管道功能”,竖线字符“|”是管道操作符。例如,命令DIR|MORE使得当前目录列表在屏幕上逐屏显示。DIR的输出是整个目录列表,它不出现在屏幕上而是由于符号“|”的规定,成为下一个命令MORE的输入,MORE命令则将其输入,MORE命令则将其输入一屏一屏地显示,成为命令行的输出。
再如命令DIR|FIND"COM">COMDIR也利用了管道功能。DIR的输出是当前目录列表。不出现在屏幕上而是成为FIND命令的输入。FIND命令在输入文件中寻找指定字符串"COM"并输出包含这个字符串的行,由于输出重定向符号>的规定,最后的输出已存入文件COMDIR,不出现在屏幕上。命令DIR|FIND"DIRDIR则是将当前目录项中的子目录项寻找出来并存入文件DIRIDR中。
管道功能可理解为将若干命令用输入输出“管道”串接在一起。
通常当打入DOS命令之后所处理的信息(输入数据,对选择项的回答等等)是由标准输入设备--键盘输入的。也可以将命令执行过程中所需输入的处理信息预先写入某个文件,例如MYCOM,如果所执行的程序文件为MYPROG.COM,则打入命令: C:>MYPROG 之后,执行MYPROG时所需的处理信息就改为由文件MYCOM读入,这就是输入重定向。小于号<是输入重定向操作符,在或>>,然后列出指定的文件名(或标准设备文件名)作为输出。其中在>之后的文件要重新建立,而在>>之后可以是已存在的文件名,新的输出内容续接在该文件原有内容之后。例如,若连续打入下列两个命令:
C>TREE>FILE
C>CHKDSK>>FILE
执行第一个命令时,C盘树形目录结构将输出到新建文件FILE中,不在屏幕上显示。执行第一个命令时,C盘树形目录结构将输出到新建文件FILE中,不在屏幕上显示。执行第二个命令时,FILE是已有文件,磁盘数据区使用情况输出到FILE文件中,接在树形目录结构之后。
输入输出重定向可以同时使用。例如,若文件DATA中存放若干数据,需要将这些数据按字典顺序排序后放入文件SORT.DAT中,可使用下列命令
C>SORTSORT.DAT
命令中以DATA作为输入,以SORT.DAT作为输出。
内部命令CTTY也可规定新的标准输出设备。实际上CTTY是将命令行中列出的标准设备文件名相关的设备作为新的控制台终端。例如,可以在通信口(COM1)连接电传打字机,则执行命令CTTY COM1之后,原来终端被取消,改成与COM1连接的电传打字机。如果要恢复原来终端,需在电传上打入命令CTTYCON。
关于重定向、管道及过滤命令:
重定向命令又称转向命令;管道命令又称传送命令。
输出重定向命令 > 、>> ,输入重定向命令 example.txt
或
echo This is an example ! >> example.txt
执行后在屏幕并无显示,本应在屏幕上显示的内容到哪里去了呢?原来是生成了一个名为 EXAMPLE.TXT 的文件,本应显示在屏幕上的内容This is an example ! 就保存了这个文件中!
如果原来就有一个文件名为 EXAMPLE.TXT 会出现什么情况呢?
如果你使用的是 > ,原文件会被删除,重新生成新的文件,其内容如上所述;如果你使用的是 >> ,原文件内容会被保留,新的内容会添加到原文件件的内容的后面。这就是二者的区别。考试时建设大家用 > ,因为即使你重复使用了几次,文件内容也不会变化。
其他几个这里仅略作介绍。
输入重定向使输入信息来自文件。过滤命令 more 进行分屏显示; find 查找符合条件的内容;sort (按行)排序。有些东西需通过管道与过滤命令相结合。这里举几个例子:
more filelist.txt
把文件或子目录中含有“O”(注意要用大写)的文件清单(如dos, ucdos, windows, autoexec.bat, config.sys, command.com等)保存到文件 filelist.txt 中。注意用 dir O*等命令达不到同样目的。
sort file2.txt
把文件 file1.txt 的内容按行排序后输出到文件 file2.txt 中去。
|
|
2004-4-12 00:00 |
|
|
龙王
银牌会员
积分 1186
发帖 334
注册 2003-5-30
状态 离线
|
『第
3 楼』:
多实践
多练练
成功的日子在后边
|
|
2004-4-12 00:00 |
|
|
无妄★模拟
初级用户
蝎蛇统领
积分 280
发帖 35
注册 2003-5-21
状态 离线
|
『第
4 楼』:
多谢龙王了,我多少明白了一点了!!我在实践一下吧!谢谢你 了~~
|
我是菜鸟,我要变成老鸟!
www.10.164.63.101.com |
|
2004-4-12 00:00 |
|
|
龙王
银牌会员
积分 1186
发帖 334
注册 2003-5-30
状态 离线
|
『第
5 楼』:
我什么也没做,你该感谢2楼的兄台,虽然转贴,通俗易懂
我也根据相关资料简单综合一下吧,供你参考
MS-DOS默认的标准输入设备是键盘,标准输出设备是屏幕显示器。在各个命令中,凡涉及到输入设备或输出设备操作的,都可以用下述方式改变系统默认的定义。下面介绍一下输入输出设备的重新定义方法,输入输出设备的重新定义也称为IO改向。
一。 输入设备的重新定义
凡是命令中涉及到从标准输入(键盘)输入数据的,都可以用在命令中增加下述格式的方法,把指定文件的数据作为执行时自动输入的内容:
命令格式:
< [][][.]
功能:把指定文件的内容作为“<”前面命令的输入。
[例] MORE命令显示文件DS-1.TXT的内容。
C:\> MORE < DS-1.TXT
该命令将在标准输出设备(屏幕)上显示DS-1.TXT的内容。可见用文件DS-1.TXT取代了标准输入。
输入设备的重新定义还可以用于任何具有键盘输入请求的目标程序,它提供了把人机交互变为机器与文件交互的方法。但这种使用方法的功能较弱,没有判别文件是否读完的能力。
二。 输出设备的重新定义
命令格式1: > [][][.]
功能:把输出数据送到指定名称的新文件中,如果原己存在同名文件,则原文件被删除。
命令格式2: >> [][][.]
功能:把输出数据累加到原有文件之后,如果原无此文件,则功能同格式1。
命令格式3: >
功能:将输出数据送到指定外部设备。
[例]
C:\> DIR > DIR.TXT 把磁盘目录的信息送到数据文件DIR.TXT中;
C:\> DIR A:*.COM >> DIR.TXT 把A盘的*.COM文件的目录信息累加到数据文件DIR.TXT”中;
C:\>DIR C:\USER1 > PRN 把C盘子目录\USER1内的文件目录输出到打印机。
三。 命令中的管道线“|”
管道线“|”是把两个命令连接起来的符号。它把两个命令进行这样的连续,管道线前面的命令所输出的数据,经“管道”流向一新建的临时文件中;然后这个文件中的内容又作为输入数据被管道线后边的命令接受并执行。执行完成后,临时文件将被删除。
[例]
C:\>DIR A: | SORT
这个命令的执行过程是,DIR命令把A盘上的文件目录先输出到当前盘中,形成一个临时文件,这个临时文件又输送给SORT命令,排序后输出于屏幕。最后,系统把临时文件删除。
如果把上面的输出结果从标准输出设备转贮到当前磁盘的一个新建文件“FILE.DAT”中,则用下述命令:
C:\> DIR A:|SORT > FILE.DAT
如果希望仅把A盘中当前目录的下一级子目录项经排序送到文件“FILE.DAT”中,则命令为:
C:\>DIR A:| FIND “DIR”| SORT > FILE.DAT
(注:引号内的“DIR”必须大写)
[例] 把一个文本文件MYFILE.TXT,经排序输送到打印机.
C:\>TYPE MYFILE.TXT | SORT > PRN
或:C:\> SORT PRN
|
|
2004-4-12 00:00 |
|
|
jyssysz
中级用户
积分 343
发帖 50
注册 2004-2-21
状态 离线
|
『第
6 楼』:
用DIR查找符合条件的文件名可用以下命令:DIR *O*.* >>dir.txt
|
|
2004-5-2 00:00 |
|
|
龙王
银牌会员
积分 1186
发帖 334
注册 2003-5-30
状态 离线
|
『第
7 楼』:
Quote: | 以下是引用jyssysz在2004-5-2 14:00:26的发言:
用DIR查找符合条件的文件名可用以下命令:DIR *O*.* >>dir.txt
|
|
如果当前目录下已经存在dir.txt,可以用>>添加文件清单;
第一次只用>产生新文件
|
|
2004-5-3 00:00 |
|
|
jzhupo
中级用户
积分 347
发帖 53
注册 2004-7-4
状态 离线
|
『第
8 楼』:
经本人试用,<也可用于debug程序
如debug<xxxx.asm
|
|
2004-7-16 00:00 |
|
|
fgc
中级用户
小妖
积分 227
发帖 32
注册 2003-11-21
状态 离线
|
|
2004-7-18 00:00 |
|