我有一個簡單的健康檢查腳本,用於檢查下面列出的Windows共享驅動器的狀態。爲什麼我的批處理文件沒有錯誤輸出從STDERR重定向到文件?
我得到所需的輸出命令的工作時。但是,當出現錯誤時,我不會在輸出文件中獲得輸出。我曾將STDOUT和STDERR作爲一種可能的解決方案,但我無法完成此工作。
任何人都可以請幫我這個代碼。
@echo off
echo START > results.txt
for /f %%s in (server_list.txt) do (
echo %%s >> results.txt
for /f "delims=" %%n in ('net use \\%%s') do (
echo %%s - %%n >> results.txt 2> err.txt
)
)
輸出文件如下所示。
START
server1
server1 - The command completed successfully.
server2
server2 - The command completed successfully.
但是,err.txt
文件中沒有任何內容。我已經確保在文件server_list.txt
中輸入一些不正確的條目以獲得測試的一些錯誤。錯誤輸出顯示在命令行窗口中,而不是打印到err.txt
文件。
echo不會寫入stderr。 net.exe的確如此,但你並沒有重定向它的輸出。您必須重新考慮這一點,請考慮重定向cmd.exe的輸出 –