使用命令重定向操作符

2021-04-13 23:29:01 字數 4928 閱讀 8293

更新日期: 01/21/2005

可以使用重定向操作符將命令輸入和輸出資料流從預設位置重定向到其他位置。輸入或輸出資料流的位置稱為控制代碼。

下表將列出可用的控制代碼。

控制代碼控制代碼的數字代號

描述stdin

0鍵盤輸入

stdout

1輸出到命令提示符視窗

stderr

2錯誤輸出到命令提示符視窗

undefined

3-9控制代碼由應用程式單獨定義,它們是各個工具特有的

數字 0 到 9 代表前 10 個控制代碼。可以使用命令 cmd.exe 執行程式,並對該程式前 10 個控制代碼中的任何乙個控制代碼進行重定向。要指定要用的控制代碼,請在重定向操作符之前鍵入該控制代碼的數字。如果未定義控制代碼,則預設的 < 重定向輸入操作符是 0,而預設的 > 重定向輸出操作符是 1。鍵入 < 或 > 操作符之後,必須指定資料的讀寫位置。可以指定檔名或其他現有的控制代碼。

要指定重定向到現有控制代碼,請使用與 (&) 字元,後面接要重定向的控制代碼號(即&控制代碼號)。例如,下面的命令可以將控制代碼 2(即 stderr)重定向到控制代碼 1(即 stdout):

2>&1

下表列出了可用於重定向輸入和輸出資料流的操作符。

重定向操作符

描述>

將命令輸出寫入到檔案或裝置(如印表機),而不是命令提示符視窗或控制代碼。

<

從檔案而不是從鍵盤或控制代碼讀入命令輸入。

>>

將命令輸出新增到檔案末尾而不刪除檔案中已有的資訊。

>&

將乙個控制代碼的輸出寫入到另乙個控制代碼的輸入中。

從乙個控制代碼讀取輸入並將其寫入到另乙個控制代碼輸出中。

|

從乙個命令中讀取輸出並將其寫入另乙個命令的輸入中。也稱作管道。

預設情況下,可以從鍵盤將命令輸入(即 stdin 控制代碼)傳送到 cmd.exe,然後由 cmd.exe 將命令輸出(即 stdout 控制代碼)傳送到命令提示符視窗。

返回頁首

要通過鍵盤將輸入重定向到檔案或裝置,請使用 < 操作符。例如,要從 file.txt 獲取sort命令的輸入,請鍵入:

sortfile.txt 的內容將以字母順序列表的方式顯示在命令提示符視窗中。

< 操作符可以開啟具有唯讀訪問許可權的指定檔名。因此,不能在使用該操作符時向檔案中寫入資訊。例如,如果以

注意•0 是 < 重定向輸入操作符的預設控制代碼。

返回頁首

幾乎所有的命令都將輸出傳送到命令提示符視窗。即使將輸出傳送到驅動器或印表機的命令也會在命令提示符視窗顯示訊息和提示。

要將輸出從命令提示符視窗重定向到檔案或裝置,請使用 > 操作符。可以在許多命令中使用該操作符。例如,要將dir輸出重定向到 dirlist.txt,請鍵入:

dir>dirlist.txt

如果 dirlist.txt 不存在,cmd.exe 將建立該檔案。如果 dirlist.txt 存在,cmd.exe 將使用dir命令的輸出替換檔案中的資訊。

要執行netsh routing dump命令,然後將輸出傳送到 route.cfg,請鍵入:

netsh routing dump>c:/route.cfg

> 操作符可以開啟具有只寫訪問許可權的指定檔案。因此,不能使用該操作符讀取檔案。例如,如果使用重定向操作符 >&0 啟動程式,則寫入控制代碼 1 的所有嘗試操作都將失敗,因為控制代碼 0 最初是以唯讀訪問方式開啟的。

注意

1 是 > 重定向輸出操作符的預設控制代碼。

返回頁首

重定向操作符 & 可以將輸出或輸入從乙個指定控制代碼複製到另乙個指定的控制代碼。例如,要將dir輸出傳送到 file.txt 並將錯誤輸出傳送到 file.txt,請鍵入:

dir>c:/file.txt 2>&1

複製控制代碼時,可以複製該控制代碼原狀態的所有特性。例如,如果乙個控制代碼具有唯讀訪問的屬性,則該控制代碼的所有副本都具有唯讀訪問屬性。不能將乙個具有唯讀訪問屬性的控制代碼複製到另乙個具有只寫訪問屬性的控制代碼。

返回頁首

要將重定向輸入操作符 (

例如,要以控制代碼 0 輸入讀取(即 stdin)的方式開啟 file.txt,請鍵入:

<file.txt

要開啟 file.txt,並在內容排序後將輸出傳送到命令提示符視窗(即 stdout),請鍵入:

sort<file.txt

要查詢 file.txt,然後將控制代碼 1(即 stdout)和控制代碼 2(即 stderr)重定向到 search.txt,請鍵入:

findfile file.txt>search.txt 2

要以控制代碼 0 輸入讀取(即 stdin)的方式複製使用者定義的控制代碼 3,請鍵入:

返回頁首

如果將輸出重定向到檔案且指定了現有的檔名,cmd.exe 將以只寫方式開啟檔案並覆蓋該檔案內容。如果指定了控制代碼,cmd.exe 將檔案複製到現有控制代碼中。

要將使用者定義的控制代碼 3 複製到控制代碼 1,請鍵入:

>&3

要將包括控制代碼 2(即 stderr)的所有輸出從ipconfig命令重定向到控制代碼 1(即 stdout),然後將輸出重定向到 output.log,請鍵入:

ipconfig.exe>>output.log 2>&1

返回頁首

要從命令中將輸出新增到檔案末尾而不丟失檔案中已存在的任何資訊,請使用兩個連續的大於號(即 >>)。例如,使用下列命令可以將dir命令生成的目錄列表附加到 dirlist.txt 檔案:

dir>>dirlist.txt

要將netstat命令的輸出附加到 tcpinfo.txt 的末尾,請鍵入:

netstat>>tcpinfo.txt

返回頁首

管道操作符 (|) 可以提取乙個命令的輸出(預設情況下是 stdout),然後將其定向到另乙個命令的輸入(預設情況下是 stdin)中。例如,使用下面的命令可以對目錄進行分類:

dir | sort

在本例中,將同時啟動兩個命令,但隨後sort命令會暫停,直到它接收到dir命令的輸出為止。sort命令使用dir命令的輸出作為輸入,然後將輸出傳送到控制代碼 1(即 stdout)。

返回頁首

通過合併帶有其他命令和檔名的篩選器命令,可以建立自定義命令。例如,可以使用以下命令儲存包含「log」字串的檔名:

dir /b | find "log" loglist.txt

dir命令的輸出是通過find篩選器命令進行傳送的。包含字串「log」的檔名作為檔名列表(例如,netshconfig.log、logdat.svd 和 mylog.bat)儲存在檔案 loglist.txt 中。

要在相同命令中使用多個篩選器,請使用管道 (|) 分隔篩選器。例如,下面的命令將搜尋 c 盤上的每個目錄以查詢包含「log」字串的檔名,並且在命令提示符視窗中每次顯示一屏:

dir c:/ /s /b | find "log" | more

利用管道 (|) 可以對 cmd.exe 進行定向,使其通過find篩選器命令傳送dir命令輸出。find命令只選擇包含字串「log」的檔名。more命令可以顯示find命令選擇的檔名(在命令提示符視窗中每次顯示一屏)。有關篩選器命令的詳細資訊,請參閱使用篩選器。

命令重定向操作符

使用命令重定向操作符 redirection operators 可以使用重定向操作符將命令輸入和輸出資料流從預設位置重定向到不同的位置。輸入或輸出資料流的位置即為控制代碼。下表列出了可用於將命令輸入和輸出資料流進行重定向的操作符。重定向操作符 說明 將命令輸出寫入到檔案或裝置 例如印表機 中,而不...

dos命令 重定向操作符

可以使用重定向操作符將命令輸入和輸出資料流從預設位置重定向到不同的位置。輸入或輸出資料流的位置即為控制代碼。下表列出了可用於將命令輸入和輸出資料流進行重定向的操作符。重定向操作符 說明 將命令輸出寫入到檔案或裝置 例如印表機 中,而不是寫在命令提示符視窗中。從檔案中而不是從鍵盤中讀入命令輸入。將命令...

Linux中各種操作符 重定向操作符 管道符

linux重定向操作符 功能描述 將命令輸出寫入檔案或裝置,而不是命令提示符或控制代碼,清空原有檔案然後寫入 從檔案而不是從鍵盤或控制代碼讀入命令輸入 將命令輸出新增到檔案末尾而不刪除檔案中已有的資訊 與 比較使用 將乙個控制代碼的輸出寫入到另乙個控制代碼的輸入中 從乙個控制代碼讀取輸入並將其寫入到...