Дополнительно
Перенаправление окон УМК stdout и stderr в один файл
Я'м пытаясь перенаправить поток вывода (stdout + stderr, в) из Дос команда в один файл:
C:\>dir 1> a.txt 2> a.txt
The process cannot access the file because it is being used by another process.
Возможно ли это, или я должен просто перенаправить в двух отдельных файлах?
654
8
Вы хотите:
Синтаксис
2>&1
перенаправить2
(поток stderr) на " 1 " (стандартный вывод). Вы также можете скрыть сообщения, перенаправивнуль
, более подробное объяснение и примеры в MSDN.Андерс Линдал'ы ответ правильный, но следует отметить, что если вы не перенаправление stdout в файл и хотите перенаправить stderr, а затем вы должны убедиться, что
2>&1
указан после в1>
перенаправление, иначе ничего не получится.Справочная информация от МСКБ
Хотя принято отвечать на этот вопрос правильно, это действительно не'т многое сделать, чтобы объяснить почему он работает, и так как синтаксис не сразу понятно, я сделал быстрый Google, чтобы выяснить, что происходит на самом деле. В надежде, что эта информация будет полезной для других, Я'м его размещения здесь.
Взято из MS поддержка КБ 110930.
От MSKB110930
Чтобы добавить stdout и stderr в общий лог-файл скрипта:
Правильно, дескриптор файла 1 для процесса стандартный вывод, перенаправляться
1>
или в>
(1 может быть опущен, по соглашению, командный интерпретатор [cmd.exe] знает, что справиться с этим). Дескриптор файла 2-это поток stderr, перенаправляются2>
.Обратите внимание, что если вы're, используя эти файлы журналов, а затем, если вы'вновь отправляю outut в _uniquelynamed (например дата и время) лог-файлы, то если запустить тот же процесс дважды, перенаправленные будет переписать (заменить) предыдущий файл журнала.
В
>>
(для stdout или stderr) будет добавлять не заменить файл. Таким образом, вы получаете накопительный журнал, showwing результаты всех тиражей сам процесс - как правило, более эффективны.Счастливого пути...
Я только что выхваченное ответ как @Андерс просто запостил, но...
Из моего окна помочь, я искал на редирект (URL-адрес ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm).
Вы можете прочитать о >> и | (трубы) тоже.
Есть, правда, никакой гарантии, что выход
SDTOUT
истандартный вывод
переплелись построчно в своевременном порядке, используя в POSIX` перенаправить синтаксис слияния.Если приложение использует буферизированный выход, может случиться так, что текст один поток вставляется в другую в границах буфера, которые могут появиться в середине строки текста.
Выделенный консольный вывод логгера (т. е. в
то"поток stdout/stderr, в регистратор и"
на'Лорд Малдер'
) может быть более надежным для такой задачи.См.: Малдер'ы opensource проекты
В пакетный файл (Windows 7 и выше) я нашел этот способ самый надежный
Очевидно, использовать любые команды, которые вы хотите, и звук будет направлен в текстовый файл. Используя этот метод это надежный, однако нет изображения на экране.