2014-10-27 52 views
0

問題:對於有usebackq令牌不會允許我重定向標準錯誤

我有一個將一個字符串寫入標準輸出,我需要捕捉到一個環境變量的程序。如果程序遇到任何錯誤,它會將它們寫入標準錯誤。我不希望錯誤輸出垃圾了我的環境變量,所以我想轉發錯誤消息到NUL

下面是錯誤記錄前什麼工​​作:

for /f "usebackq tokens=*" %%a 
in (`modifyFileVersion.exe %userprofile%\version.txt`) 
do set FILE_VERISON=%%a 

這是我想要完成的任務:

for /f "usebackq tokens=*" %%a 
in (`modifyFileVersion.exe %userprofile%\version.txt 2>NUL`) <-- addition of 2>NUL 
do set FILE_VERISON=%%a 

以下是錯誤:

2> was unexpected at this time. 

我的理解是,退出令牌允許您執行命令,而不是指向文件或字符串。我需要幫助糾正我的語法,或解決方法來完成同樣的事情。

回答

2

使用此命令 - 您需要轉義for命令尾部中的某些字符。

2^>nul 
+0

這工作,但我也有一個問題,其中'modifyFileVersion.exe'採取可選參數。它以'2'作爲參數,然後將標準輸出重定向到'NUL'。 – Zak 2014-10-27 06:54:02

+0

如果該術語符合我的建議,則不應該這樣做。你可以在'.exe'名字前面加上這個詞 - 它應該可以工作,但是我沒有測試過它。 – foxidrive 2014-10-27 06:56:44

+0

太棒了!它像你最初說的那樣工作。我從我的腳本中複製並粘貼,在那裏我評論了它......杜! – Zak 2014-10-27 07:01:40