2009-06-11 24 views
25

Si tengo un exe: out.exe y su salida estándar se redirige a un archivo es decir:ancho de columna de salida Powershell

out.exe > $file

En este momento, si lo hago que sólo produce la salida < --- --------------------------> 80 columnas por línea en el archivo

hay una manera de hacer que la salida estándar sea más ancho en el conteo de columnas de la consola? es que la eso de alguna manera out.exe que ensucian con las columnas .. en mi caso estoy usando fxcompcmd.exe

+1

Quiero actualizar esta pregunta. Resulta que estoy tratando de dar salida a la ventana de salida de Visual Studio ... pero la ventana está envolviendo a 80 charachters ... ¿hay alguna forma de configurarlo en más amplio? – maxfridbe

Respuesta

32

me encontré con un similares problema hace un tiempo. Esto es lo que hice para solucionarlo:

# 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 
} 

Simplemente establece un nuevo ancho de 500 caracteres en el buffer de salida RawUI del huésped (aunque, ya que corremos nuestra estructura en varios entornos, y que no desea que el script fallar solo porque no puede hacer que la salida sea un poco más grande, el código es bastante defensivo).

Si se ejecuta en un entorno que siempre establece RawUI (y la mayoría lo hace), el código puede ser muy simplificada:

$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 25) 
+1

Gracias .. ¡Usted señor es el hombre! – maxfridbe

+0

No haga esto cuando llame a PowerShell desde un paso de compilación de Visual Studio. Parece colgar PowerShell.exe. – yzorg

+1

Tenga cuidado al establecer el tamaño, ya que establecer una de las dimensiones en un valor menor hará que el script se escriba. Esta publicación de blog más antigua sobre el tema me causó algunos problemas: http://weblogs.asp.net/soever/archive/2008/12/09/powershell-output-capturing-and-text-wrapping-strange-quirks- solved.aspx # 7718576 (FWIW mi comentario está cerca de la parte inferior) –

9

Tanto los out-file y out-string cmdlets tienen un parámetro width:

out.exe | out-file -width 132 -filePath $file 
+3

Pero esto no ayudará si el exe decide solo sacar 80 caracteres. – JasonMArcher

0

En mi script de PowerShell puse la primera línea de no hacer retornos de carro la segunda línea, hice un retorno manualmente.

(dentro de un bucle)

Write-Host -nonewline "$var1;$var2" 

Write-Host "`r" 

Eso hizo caso omiso de la cuestión de tener mi línea envuelto, pero aún haciendo un regreso después de cada registro individual.

+0

Creo que el problema es aumentar el ancho de la ventana de salida en VS ... esto no parece responder a la pregunta correctamente. – rayryeng

0

Si estamos hablando acerca de Windows PowerShell - sólo "Propiedades> Disposición" abiertos Aumentar el tamaño del búfer + tamaño de la ventana

enter image description here

Cuestiones relacionadas