全國計算機等級考試上機考試應試技巧(二)

dos允許在命令中出現用豎線字元“|”分開的多個命令,將符號“|”之前的命令的輸出,作為“|”之後命令的輸入,這就是“管道功能”,豎線字元“|”是管道操作符。例如,命令dir|more使得當前目錄列表在螢幕上逐屏顯示。dir的輸出是整個目錄列表,它不出現在螢幕上而是由於符號“|”的規定,成為下一個命令more的輸入,more命令則將其輸入,more命令則將其輸入一屏一屏地顯示,成為命令行的輸出。

再如命令dir|find"com">comdir也利用了管道功能。dir的輸出是當前目錄列表。不出現在螢幕上而是成為find命令的輸入。find命令在輸入檔案中尋找指定字元串"com"並輸出包含這個字元串的行,由於輸出重定向符號>的規定,最後的輸出已存入檔案comdir,不出現在螢幕上。命令dir|find"< dir >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。

關於重定向、管道及過濾命令:
重定向命令又稱轉向命令;管道命令又稱傳送命令。
輸出重定向命令 > 、>> ,輸入重定向命令 < ;
管道命令 | ;
過濾命令 more 、sort 和 find 。
其中管道命令常與過濾命令聯合使用。

目前等級考試用到的命令為輸出重定向命令。所謂輸出重定向指把執行相應dos命令時本應在螢幕上顯示的內容輸出到重定向命令所指向的檔案或設備中去。這句話可能不太好理解,以例子說明之:
echo this is an example !
執行此命令在螢幕上顯示:
this is an example !

echo this is an example ! > example.txt

echo this is an example ! >> example.txt

執行後在螢幕並無顯示,本應在螢幕上顯示的內容到哪裡去了呢?原來是生成了一個名為 example.txt 的檔案,本應顯示在螢幕上的內容this is an example ! 就保存了這個檔案中!

如果原來就有一個檔案名稱為 example.txt 會出現什麼情況呢?

如果你使用的是 > ,原檔案會被刪除,重新生成新的檔案,其內容如上所述;如果你使用的是 >> ,原檔案內容會被保留,新的內容會添加到原檔案件的內容的後面。這就是二者的區別。考試時建設大家用 > ,因為即使你重複使用了幾次,檔案內容也不會變化。

其他幾個這裡僅略作介紹。

輸入重定向使輸入信息來自檔案。過濾命令 more 進行分屏顯示; find 查找符合條件的內容;sort (按行)排序。有些東西需通過管道與過濾命令相結合。這裡舉幾個例子:
more < c:\tc\readme
more的輸入來自 c:\tc\readme 檔案(tc的自說明檔案,其內容比較多,一屏遠遠顯示不下)。這個命令與
type c:\tc\readme | more
作用相同,但更簡潔,效率也更高。
dir c:\ | find "o" > filelist.txt
把檔案或子目錄中含有“o”(注意要用大寫)的檔案清單(如dos, ucdos, windows, autoexec.bat, config.sys, 等)保存到檔案 filelist.txt 中。注意用 dir o*等命令達不到同樣目的。
sort < file1.txt > file2.txt
把檔案 file1.txt 的內容按行排序後輸出到檔案 file2.txt 中去。