PowerShell remover cores mensagem de console ao usar tee-objeto

10

Existe alguma maneira de impedir que o PowerShell remova as cores das mensagens do console ao usar o objeto tee?

Quando eu executo sem tee-object, recebo o erro de erro e as cores de mensagem do powershound detalhadas como esta:

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

com cor http://i32.tinypic.com/250779w.jpg

No entanto, quando eu estou usando o tee-object (b / c eu quero logar para console & amp; file), as cores das mensagens não são mostradas no console (eu sei que o arquivo não irá mostrar) assim:

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

sem cor http://i29.tinypic.com/bzpc2.jpg

Se o powershell estiver apenas usando o tee-object para dividir a saída para um arquivo além do console, por que estou perdendo a formatação do console?

    
por DetectiveEric 22.07.2010 в 00:40
fonte

1 resposta

5

Tente isso:

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

Isso acontece porque essa parte é executada primeiro:

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

Tal que o objeto tee vê é a saída de um EXE nativo. E AFAICT, o PowerShell não gera registros de erros (ou realce) de saída stderr de um EXE nativo (a menos que você redirecione o fluxo de erros, por exemplo, 2>err.log .

    
por Keith Hill 22.07.2010 / 01:10
fonte