Консольные цвета сообщения удаления PowerShell при использовании объекта мишени

Там какой-либо путь состоит в том, чтобы мешать PowerShell удалить консольные цвета сообщения при использовании объекта мишени?

Когда я работаю без объекта мишени, я получаю хорошую ошибку и подробные powershell цвета сообщения как это:

powershell.exe -noprofile -file $project_root/test_main.ps1

with color

Однако, когда я использую объект мишени (b/c, я хочу регистрироваться к консоли и файлу), цвета сообщения не показывают на консоли (я знаю, что файл не покажет его) как это:

powershell.exe -noprofile -file $project_root/test_main.ps1 | tee-object -FilePath $log

no color

Если powershell просто использует объект мишени разделить вывод в файл в дополнение к консоли, почему я теряю консольное форматирование?

12
задан Glorfindel 3 August 2019 в 09:11
поделиться

1 ответ

Попробуйте вместо этого:

powershell.exe -noprofile -command { $path\test_main.ps1 | tee-object $log }

Это происходит потому, что эта часть выполняется первой:

powershell.exe -noprofile -file $project_root/test_main.ps1 

Таким образом, то, что видит tee-object, это вывод родного EXE. И AFAICT, PowerShell не выводит записи об ошибках (или не выделяет) вывод stderr из родного EXE (если вы не перенаправляете поток ошибок, например, 2>err.log.

5
ответ дан 2 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: