2012-08-06 87 views
0

批處理文件輸出「系統找不到指定的文件。」而不是重定向的錯誤nul仍出現錯誤信息,但> nul 2> nul

set /p firstline=<text.txt >nul 2>nul 
pause 

什麼我需要做到這一點確實出現了這樣的情況(Win7上測試)取消錯誤消息

+0

你不實際在上面的代碼中> nul。 – 2012-08-06 17:31:06

+0

即時發生錯誤的代碼輸出.... – 2012-08-06 17:36:37

回答

0

。看起來像一個類似bug的功能。 :-)如果你的批處理文件很簡單,你可以通過調用你的批處理文件2>nul(即foo.cmd 2>nul)來解決這個問題。

或者,您可以將該行放入其自己的批處理文件(例如,setfirstline.cmd)中,並使用call setfirstline.cmd 2>nul從「父」批處理文件。哈克,但功能。

1

此代碼重定向將被忽略。我不知道爲什麼,我的猜測是因爲錯誤發生在重定向機制本身,後來redirs永遠不會運行。

要強制你想到哪裏錯誤重定向的分離 - 使用():

(set /p firstline=<text.txt) >nul 2>nul 

您也可以考慮使用不同的語法都重定向到一個ouptut:

(set /p firstline=<foo2.txt) >nul 2>&1