Как зарегистрировать вывод незавершенной / не отвечающей / зависшей команды в win7?

Я хочу перенаправить консольный вывод команды.
Дело в том, что команда зависает на полпути (более или менее), и хотя она выводит на консоль, файл журнала пуст. Я также пробовал wtee.exe так: com.exe | %pat%wtee.exe log.txt, но это не работает. Мне нужно что-то, что выгружает консоль в реальном времени. Я открыт практически для любого решения, включая c++ и powershell csript и т. д.

Для записи мне нужно опубликовать подробный вывод ( https://superuser.com/questions/564468/how-can-i-store-encfs6-xml-in-another-location-and-still-make-it-detectable )

заранее спасибо

ОБНОВИТЬ:

Wohoo, это работает.
Очевидно, мне нужно удалить файл журнала перед запуском пакетного сценария + мне пришлось перенаправить stderr на stdout перед передачей в wtee.exe следующим образом:

mycommand.exe  2>&1  | wtee.exe %abspath%log.txt

если я использую

mycommand.exe  2>&1  | wtee.exe -a %abspath%log.txt 

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

Огромное спасибо

ОБНОВЛЕНИЕ 2: я также использовал тег gnuwin32, так как tee и wtee почти одинаковы, и я думаю, что это относится и к tee.exe!


person olitzadobric    schedule 12.03.2013    source источник


Ответы (1)


Как именно это «не работает»? Что произойдет, если вы перенаправите STDOUT и STDERR в файл (command >log.txt 2>&1)? Вы все еще получаете вывод на консоль? Если это так, команда не записывает в STDOUT, поэтому tee (или wtee в этом отношении) не получает никаких входных данных, потому что канал соединяет STDOUT из command со STDIN из tee. В этом случае попробуйте перенаправить дескрипторы 3-9, пока не найдете дескриптор, в который пишет команда. Пример:

command 3>log.txt

Вы можете компенсировать отсутствие вывода консоли, отобразив файл журнала на пейджере (например, baretail).

Как только вы нашли дескриптор, вы можете перенаправить его в STDOUT, а затем передать в tee:

command 5>&1 | tee log.txt
person Ansgar Wiechers    schedule 12.03.2013