PowerShell: отправлять вывод консоли в файл, не отключая вывод этой консоли - PullRequest
12 голосов
/ 25 февраля 2011

У меня много скриптов PowerShell.Одно главное, что вызывает других, дочерних.Эти PS-скрипты в свою очередь вызывают Windows-скрипты CMD, bash-скрипты и консольные приложения.Все эти скрипты и приложения пишут сообщения на консоль.Сценарии PowerShell, например, используют для этой цели скриптлет Write-Host.

Вопрос: как мне легко перенаправить (отправить) весь этот вывод консоли в какой-то файл, не оглушаяотмена) это консольный вывод?Я хочу иметь возможность видеть, что происходит на консоли, а также вести историю сообщений в файле журнала.

Спасибо.

Ответы [ 4 ]

6 голосов
/ 25 февраля 2011

Вы можете использовать tee эквивалент PowerShell: Tee-Object

PS: serverfault.com и / или superuser.com больше подходят для такого вопроса.

5 голосов
/ 25 февраля 2011

Можно попробовать Start-Transcript и Stop-Transcript.У него есть пара ограничений, например, не захватывать нативный вывод exe.Это также глобально для сеанса PowerShell.

2 голосов
/ 03 марта 2011

Я нашел скрипт для захвата вывода консоли: http://gallery.technet.microsoft.com/scriptcenter/e8fbffde-7d95-42d9-81de-5eb3d9c089e0. Скрипт возвращает HTML для сохранения цветов.

Единственный большой недостаток - вы должны вызвать его в конце скрипта, чтобы захватить всеконсольный вывод он сделал.

1 голос
/ 25 февраля 2011

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

...