Se sei un amante di PowerShell allora sarai ben consapevole di ottenere un output di PowerShell troncato dalla console di PowerShell quando vengono inseriti comandi con opzioni molto lunghe oppure quando si generano output fatti di tante righe.
Questo non è un errore o un problema di PowerShell, tutto dipende dalla larghezza delle finestre della console.
Se si aumenta la larghezza, saremo in grado di ottenere più testo e se si diminuisce la larghezza, sarà visibile meno testo.
Può capitare che anche se si aumenta la larghezza della console al massimo che del testo venga troncato.
Nessun problema, di seguito ci sono alcuni workaround per risolvere questo problema e ottenere il risultato desiderato quando si invia qualcosa da PowerShell.
Per risolvere il problema dell’output di PowerShell troncato, dobbiamo prima sapere come PowerShell restituisce il risultato.
Per impostazione predefinita, PowerShell restituisce il risultato come TableView e mostra solo il risultato fino alla larghezza della console di PowerShell e tronca il risultato rimanente.
Come puoi vedere di seguito, PowerShell sta troncando il risultato e lo risolverò aggiungendo gli interruttori Wrap e Autosize al parametro Format-Table.
Eseguire il comando
0 |
Get-EventLog -LogName Application -Newest 5 |
Come si può notare dall’immagine sovrastante l’output viene troncato
Possiamo risolvere questo problema utilizzando le opzioni Wrap e Autosize con il parametro Format-Table.
Eseguire quindi il comando
0 |
Get-EventLog -LogName Application -Newest 5 | Format-Table -Wrap -Autosize |
Come si può notare dall’immagine sovrastante adesso il risultato non viene troncato ma viene visualizzato tutto andando a capo.
Un altro metodo per evitare che Powershell tronhi l’output è l’utilizzo della variabile
FormatEnumerationLimit
Per impostazione predefinita, il valore di questa variabile è uguale a 4.
Significa che mostrerà solo i primi quattro elementi nell’array e i valori rimanenti nel risultato verranno troncati.
Per ottenere tutti i valori dobbiamo impostare il valore di questa variabile a -1.
Impostiamo quindi il valore, ma prima di impostare il valore è una buona idea sapere qual è il suo valore corrente.
In PowerShell, se sil vuol vedere il valore di una qualsiasi variabile, digitare il suo nome nella console e aggiungi $ prima del suo nome e premendo INVIO si otterrà il valore
Eseguire il comando
0 |
$FormatEnumerationLimit |
Nel mio caso la varibile FormatEnumerationLimit ha il valore di default e cioè 4
Per impostare il valore -1 digitare il comando
0 |
$FormatEnumerationLimit = -1 |
A questo punto l’output non verrà più troncato.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 commenti