2011-11-30 47 views
0

我有一個批處理腳本以下是等效的:重定向windows系統錯誤

net localgroup "Cool Usergroup" 

這可能成功,也可能失敗的各種原因,包括:

System error 1376 has occurred. 

The specified local group does not exist. 

System error 5 has occurred. 

Access is denied. 

問題是我需要查找這些錯誤代碼,但輸出不是通過標準輸出或標準錯誤。我已經試過這樣:

net localgroup "Cool Usergroup" 2>&1 > %temp%\myGarbage.txt 

但是我還是濺到屏幕上,而不是在文件的輸出。

爲了給出更多的上下文,我的原始命令在for循環中運行,並且我希望在那裏工作,但還有其他問題。

for /f "tokens=*" %i in ('net localgroup "Cool Usergroup" 2>&1') do echo out: %i 

給我:

2>&1 was unexpected at this time. 

所以,我怎麼處理使用for循環中的一個批處理腳本,這些系統錯誤?看起來輸出沒有經過標準錯誤或標準輸出。

回答

1

試試這個,它工作在我的系統:

net localgroup "Cool Usergroup" > %temp%\myGarbage.txt 2>&1 
+0

+1並且接受你的答案,以便找出Windows對訂購的挑剔。 -1給微軟做這件事。 – Jared

+0

雖然我也會投票給任何能告訴我如何在for循環中執行此操作的人。你沒有回答那部分。 – Jared

+0

不知道我是否理解你想循環使用** for **語句。 **中**(**)的內容應該代表一個集合,但我不明白** net localgroup **可以代表一個集合。 –

1

我一直在尋找的只是需要一些額外的字符轉義:

for /f "tokens=*" %i in ('net localgroup ^"Cool Usergroup^" 2^>^&1') do echo out: %i 

這樣,我可以分析在特定的錯誤消息循環。儘管他接受了Kamyar的回答,但他給了我需要的突破。