Largeur de la colonne de sortie Powershell
Si j'ai un exe:.exe et son stdout sont redirigés vers un fichier ie:
out.exe > $file
maintenant si je le fais, il ne sort que 80 colonnes par ligne dans le fichier
y a-t-il un moyen de rendre la sortie standard plus large dans la colonne de la console? est-il de la sortir.exe thats en quelque sorte de jouer avec les colonnes.. dans mon cas jutilise fxcompcmd.exe
4 réponses
j'ai rencontré un problème similaire il y a quelques temps. Voici ce que j'ai fait pour le réparer:
# Update output buffer size to prevent clipping in Visual Studio output window.
if( $Host -and $Host.UI -and $Host.UI.RawUI ) {
$rawUI = $Host.UI.RawUI
$oldSize = $rawUI.BufferSize
$typeName = $oldSize.GetType( ).FullName
$newSize = New-Object $typeName (500, $oldSize.Height)
$rawUI.BufferSize = $newSize
}
il définit simplement une nouvelle largeur de 500 caractères sur le tampon de sortie RawUI de l'hôte (bien que, puisque nous exécutons notre build dans plusieurs environnements, et que nous ne voulions pas que le script échoue simplement parce qu'il ne pouvait pas rendre la sortie un peu plus grande, le code est plutôt défensif).
si vous exécutez dans un environnement qui définit toujours RawUI (et la plupart le font), le code peut être grandement simplifié:
$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 25)
les Deux out-file
et out-string
applets de commande ont un width
paramètre:
out.exe | out-file -width 132 -filePath $file
si vous parlez de Windows PowerShell-il suffit d'ouvrir "propriétés > Layout" augmenter la taille du tampon + la taille de la fenêtre
dans mon script powershell j'ai placé la première ligne à ne pas faire les retours de chariot la deuxième ligne, j'ai fait un retour manuel.
(dans une boucle)
Write-Host -nonewline "$var1;$var2"
Write-Host "`r"
Qui l'emportait sur le problème d'avoir ma ligne enveloppé mais encore de faire un retour après chaque enregistrement individuel.