Перенаправление системных ошибок Windows - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть эквивалент следующего в пакетном скрипте:

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? Не похоже, что вывод проходит через стандартную ошибку или стандартную ошибку.

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

То, что я искал, просто требовало некоторых дополнительных символов:

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

Таким образом, я могу анализировать определенные сообщения об ошибках в цикле.Сохраняя принятый ответ с Камьяром, так как он дал мне прорыв, который мне был нужен.

1 голос
/ 01 декабря 2011

Попробуйте, это работает на моей системе:

net localgroup "Cool Usergroup" > %temp%\myGarbage.txt 2>&1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...