2011-11-30 78 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的回答,但他给了我需要的突破。