C'è un modo per impedire a PowerShell di rimuovere i colori dei messaggi della console quando si utilizza l'oggetto tee?PowerShell rimozione dei colori dei messaggi della console quando si utilizza l'oggetto tee
Quando eseguo senza tee-oggetto ottengo la bella di errore e colori del messaggio PowerShell verbose come questo:
powershell.exe -noprofile -file $project_root/test_main.ps1
with color http://i32.tinypic.com/250779w.jpg
Tuttavia, quando sto usando tee-oggetto (b/c io voglio la registrazione per consolare & file), i colori dei messaggi non vengono visualizzati sulla console (so che il file non mostrarlo) come questo:
powershell.exe -noprofile -file $project_root/test_main.ps1 | tee-object -FilePath $log
no color http://i29.tinypic.com/bzpc2.jpg
Se PowerShell utilizza solo tee-object per dividere l'output in un file oltre alla console, perché sto perdendo la formattazione della console?
Vedo cosa stai dicendo, tuttavia, non riesco a ottenere quel comando metodo Il primo errore era "È necessario fornire un'espressione di valore sul lato destro dell'operatore '/'." Ho tentato di evitarlo senza fortuna Quindi ho provato a fare il "$ percorso \ test_main .ps1 | tee-object $ log "a $ command var, quindi chiamo powershell.exe -noprofile -command {$ command} ma non si tratta nemmeno di chiamare lo script o di generare un errore quando chiamo uno script inesistente. Come puoi vedere Keith, sto lavorando g del tuo post sul blog "Efficace articolo PowerShell 14: Catturare tutto l'output da uno script" per acquisire e registrare tutto l'output :) – DetectiveEric
Se si esegue il comando da PowerShell.exe, dovrebbe funzionare (almeno lo ha fatto per me sul mio test script). Se lo stai eseguendo da qualche altra parte oltre a PowerShell usa '... -command 'e {$ path \ test_main.ps1 | tee-object $ log}" '. –
RE "cattura tutto l'output da uno script" - Sono rimasto deluso quando PowerShell 2.0 è stato spedito senza affrontare il problema di registrazione dello script. :-( –