我正在創建一個腳本來重新啟動計算機,我需要報告 shutdown.exe 命令的成功或失敗,作為腳本日誌記錄的一部分。我在將失敗的 shutdown.exe 進程的輸出重新導向到檔案時遇到問題。這是我的命令列:
shutdown.exe -r -t 50000 -m \\top34.top.local > c:\output.txt
當我執行此程式時,我在螢幕上看到以下訊息:「top34.top.local:輸入的電腦名稱無效或目標電腦不支援遠端關閉。請檢查名稱,然後重試或聯絡您的系統Administrator. (53)”,這是我所期待的,但c:\output.txt 是空白的- 並且不包含此錯誤。我的腳本需要將此行輸出到文字檔案以用於記錄目的。
我還嘗試將它包裝在 CMD 中,如下所示:
cmd /c shutdown.exe -r -t 50000 -m \\top34.top.local > c:\output.txt
但這也沒有產生任何結果。我也嘗試過雙>>(附加),但這沒有什麼區別。
我已經做了相當多的調查,看來 shutdown.exe 會將成功指令的輸出重定向到 stdout,但不會將失敗指令的輸出重新導向到 stdout。如何讓它將成功和失敗的命令重新導向到我的檔案?
運行 Windows 2012 R2
答案1
如何讓它 ( shutdown
) 將成功和失敗的命令重新導向到我的檔案?
使用以下命令:
shutdown.exe -r -t 50000 -m \\top34.top.local > c:\output.txt 2>&1
請注意,應該2>&1
是後第一個>
重定向。
複製手柄
重定向
&
運算子將一個指定句柄的輸出或輸入複製到另一個指定句柄。例如,要將dir
輸出傳送到 File.txt 並將錯誤輸出傳送到File.txt
,請鍵入:dir > c:\file.txt 2>&1