Назад | Перейти на главную страницу

Сохранить вывод и код выхода команды в файлы в Windows

Я хочу запустить команду и сохранить ее вывод и его код выхода, в разных файлах.

Вот что я делаю:

cmd.exe /C command 1> %TEMP%\output.log 2> %TEMP%\error.log && echo %ERRORLEVEL% > %TEMP%\status || echo %ERRORLEVEL% > %TEMP%\status

Если я не выполняю перенаправление вывода (в %TEMP%\output.log и / или %TEMP%\error.log), то код выхода сохраняется нормально. Однако, когда я запускаю строку, как показано выше больше чем единожды (просто вернитесь к предыдущей строке в командной строке и перезапустите ее), я получаю 0 в %TEMP%\status независимо от реального кода выхода.

Что мне не хватает? Или, может быть, есть способ лучше?

То, что вы делаете, не сохранит код выхода, поскольку вы его не фиксируете. Самый простой способ - запустить команду из командного файла. Перенаправьте вывод как обычно и пусть командный файл сохранит значение ERRORLEVEL во втором файле.