全國(guó)計(jì)算機(jī)等級(jí)考試上機(jī)考試應(yīng)試技巧(二)

字號(hào):

DOS允許在命令中出現(xiàn)用豎線字符“|”分開的多個(gè)命令,將符號(hào)“|”之前的命令的輸出,作為“|”之后命令的輸入,這就是“管道功能”,豎線字符“|”是管道操作符。例如,命令DIR|MORE使得當(dāng)前目錄列表在屏幕上逐屏顯示。DIR的輸出是整個(gè)目錄列表,它不出現(xiàn)在屏幕上而是由于符號(hào)“|”的規(guī)定,成為下一個(gè)命令MORE的輸入,MORE命令則將其輸入,MORE命令則將其輸入一屏一屏地顯示,成為命令行的輸出。
    再如命令DIR|FIND"COM">COMDIR也利用了管道功能。DIR的輸出是當(dāng)前目錄列表。不出現(xiàn)在屏幕上而是成為FIND命令的輸入。FIND命令在輸入文件中尋找指定字符串"COM"并輸出包含這個(gè)字符串的行,由于輸出重定向符號(hào)>的規(guī)定,最后的輸出已存入文件COMDIR,不出現(xiàn)在屏幕上。命令DIR|FIND"< DIR >DIRDIR則是將當(dāng)前目錄項(xiàng)中的子目錄項(xiàng)尋找出來(lái)并存入文件DIRIDR中。
    管道功能可理解為將若干命令用輸入輸出“管道”串接在一起。
    通常當(dāng)打入DOS命令之后所處理的信息(輸入數(shù)據(jù),對(duì)選擇項(xiàng)的回答等等)是由標(biāo)準(zhǔn)輸入設(shè)備--鍵盤輸入的。也可以將命令執(zhí)行過程中所需輸入的處理信息預(yù)先寫入某個(gè)文件,例如MYCOM,如果所執(zhí)行的程序文件為MYPROG.COM,則打入命令:
    C:>MYPROG 之后,執(zhí)行MYPROG時(shí)所需的處理信息就改為由文件MYCOM讀入,這就是輸入重定向。小于號(hào)<是輸入重定向操作符,在<之后的文件名或設(shè)備名是重定向的輸入源。
    如果一個(gè)程序時(shí)需要輸入較多數(shù)據(jù),使用輸入重定向可以提高效率。
    輸出重定向的符號(hào)是>或>>,然后列出指定的文件名(或標(biāo)準(zhǔn)設(shè)備文件名)作為輸出。其中在>之后的文件要重新建立,而在>>之后可以是已存在的文件名,新的輸出內(nèi)容續(xù)接在該文件原有內(nèi)容之后。例如,若連續(xù)打入下列兩個(gè)命令:
    C>TREE>FILE
    C>CHKDSK>>FILE
    執(zhí)行第一個(gè)命令時(shí),C盤樹形目錄結(jié)構(gòu)將輸出到新建文件FILE中,不在屏幕上顯示。執(zhí)行第一個(gè)命令時(shí),C盤樹形目錄結(jié)構(gòu)將輸出到新建文件FILE中,不在屏幕上顯示。執(zhí)行第二個(gè)命令時(shí),F(xiàn)ILE是已有文件,磁盤數(shù)據(jù)區(qū)使用情況輸出到FILE文件中,接在樹形目錄結(jié)構(gòu)之后。
    輸入輸出重定向可以同時(shí)使用。例如,若文件DATA中存放若干數(shù)據(jù),需要將這些數(shù)據(jù)按字典順序排序后放入文件SORT.DAT中,可使用下列命令
    C>SORTSORT.DAT
    命令中以DATA作為輸入,以SORT.DAT作為輸出。
    內(nèi)部命令CTTY也可規(guī)定新的標(biāo)準(zhǔn)輸出設(shè)備。實(shí)際上CTTY是將命令行中列出的標(biāo)準(zhǔn)設(shè)備文件名相關(guān)的設(shè)備作為新的控制臺(tái)終端。例如,可以在通信口(COM1)連接電傳打字機(jī),則執(zhí)行命令CTTY COM1之后,原來(lái)終端被取消,改成與COM1連接的電傳打字機(jī)。如果要恢復(fù)原來(lái)終端,需在電傳上打入命令CTTYCON。
    關(guān)于重定向、管道及過濾命令:
    重定向命令又稱轉(zhuǎn)向命令;管道命令又稱傳送命令。
    輸出重定向命令 > 、>> ,輸入重定向命令 < ;
    管道命令 | ;
    過濾命令 more 、sort 和 find 。
    其中管道命令常與過濾命令聯(lián)合使用。
    目前等級(jí)考試用到的命令為輸出重定向命令。所謂輸出重定向指把執(zhí)行相應(yīng)DOS命令時(shí)本應(yīng)在屏幕上顯示的內(nèi)容輸出到重定向命令所指向的文件或設(shè)備中去。這句話可能不太好理解,以例子說(shuō)明之:
    echo This is an example !
    執(zhí)行此命令在屏幕上顯示:
    This is an example !
    而
    echo This is an example ! > example.txt
    或
    echo This is an example ! >> example.txt
    執(zhí)行后在屏幕并無(wú)顯示,本應(yīng)在屏幕上顯示的內(nèi)容到哪里去了呢?原來(lái)是生成了一個(gè)名為 EXAMPLE.TXT 的文件,本應(yīng)顯示在屏幕上的內(nèi)容This is an example ! 就保存了這個(gè)文件中!
    如果原來(lái)就有一個(gè)文件名為 EXAMPLE.TXT 會(huì)出現(xiàn)什么情況呢?
    如果你使用的是 > ,原文件會(huì)被刪除,重新生成新的文件,其內(nèi)容如上所述;如果你使用的是 >> ,原文件內(nèi)容會(huì)被保留,新的內(nèi)容會(huì)添加到原文件件的內(nèi)容的后面。這就是二者的區(qū)別。考試時(shí)建設(shè)大家用 > ,因?yàn)榧词鼓阒貜?fù)使用了幾次,文件內(nèi)容也不會(huì)變化。
    其他幾個(gè)這里僅略作介紹。
    輸入重定向使輸入信息來(lái)自文件。過濾命令 more 進(jìn)行分屏顯示; find 查找符合條件的內(nèi)容;sort (按行)排序。有些東西需通過管道與過濾命令相結(jié)合。這里舉幾個(gè)例子:
    more < c:\tc\readme
    more的輸入來(lái)自 c:\tc\readme 文件(TC的自說(shuō)明文件,其內(nèi)容比較多,一屏遠(yuǎn)遠(yuǎn)顯示不下)。這個(gè)命令與
    type c:\tc\readme | more
    作用相同,但更簡(jiǎn)潔,效率也更高。
    dir c:\ | find "O" > filelist.txt
    把文件或子目錄中含有“O”(注意要用大寫)的文件清單(如dos, ucdos, windows, autoexec.bat, config.sys, command.com等)保存到文件 filelist.txt 中。注意用 dir O*等命令達(dá)不到同樣目的。
    sort < file1.txt > file2.txt
    把文件 file1.txt 的內(nèi)容按行排序后輸出到文件 file2.txt 中去。