Calling PowerShell from MSBuild breaks long lines of text Calling PowerShell from MSBuild breaks long lines of text powershell powershell

Calling PowerShell from MSBuild breaks long lines of text


The easiest way to prevent PowerShell from breaking lines based on the console's width is to override the default implementation of Out-Default at the top of your script like so:

filter Out-Default {    $input | Out-String -Width 500 -Stream |             Microsoft.PowerShell.Utility\out-default }


Keith's answer seems less intrusive. However, if you have not been able to get it to work, another thing you might try is manually setting the width of the host. From a previous answer:

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

It simply sets a new width of 500 characters on the host's RawUI output buffer (though, since we run our build in several environments, and we did not want the script to fail just because it could not make the output a bit larger, the code is rather defensive).

If you run in an environment that always sets RawUI (and most do), the code can be greatly simplified:

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