24

Я пишу программу на C в Windows, мой printf вызывает print в командной строке, и я знаю, что могу перенаправить весь этот вывод в текстовый файл, используя:

myProgram.exe > mylog.txt

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

Есть ли способ сделать это? Я думал об использовании tail для мониторинга файла журнала.

3 ответа3

16

Windows PowerShell имеет инструмент, который может сделать это, названный по имени tee после инструмента unix, который делает то же самое.

Альтернативно, есть порты tee Unix для Windows:

7

Под Windows все, что я могу думать, это сделать это:

myProgram.exe > mylog.txt & type mylog.txt

Это основано на примере команды в вашем вопросе - если на самом деле вы хотите добавить вывод в mylog.txt тогда вы захотите использовать >> вместо > , но type напечатает весь файл журнала, а не только что был добавлен.

Если вы загружаете GnuWin32 CoreUtils, вы можете использовать метод Unix (команда tee ) для этого:

myProgram.exe | tee mylog.txt

Это запишет вывод myProgram.exe в mylog.txt но одновременно отобразит его на консоли. Если вы хотите добавить только mylog.txt вы можете передать параметр -a в tee.

0

Я использую Visual Studio Code и открываю оттуда файл журнала, он обновляет представление практически в реальном времени по мере изменения файла журнала

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .