Ho creato un file di configurazione PowerShell che modifica la richiesta di aggiungere un po 'di colore (a seconda di cose come git branch, ecc.)
Questo sembra buono, fino a quando non ho eseguito un programma console, come git, che produce anche testo colorato. Dopo questo sembra che Powershell decida di emettere testualmente i codici di escape.
Più facile da capire con uno screenshot:
- è l'output prima di eseguire git, notare l'output colorato del testo "colorized>"
- è l'output dopo aver eseguito git, si noti che i codici di escape vengono emessi testualmente
Ecco il mio file di configurazione Powershell:
function prompt {
"" + [char]0x001b + "[35m colorized >" + [char]0x001b + "[0m"
}
Esiste un trucco per riattivare la funzionalità dei codici ANSI o è solo una stranezza di come Powershell o git generano testo? Nota che git è solo un esempio, ho trovato diversi programmi che rovinano tutto, ma non tutti lo fanno.
MSBuild, ad esempio, funziona perfettamente.
prompt
funzione senza bisogno di codici di escape (utilizzare Write-Host
invece).