Ширина выходного столбца Powershell - PullRequest
29 голосов
/ 11 июня 2009

Если у меня есть исполняемый файл out.exe и он stdout перенаправлен в файл, т.е.:

out.exe > $file

Прямо сейчас, если я сделаю это, он выдаст только:

<-----------------------------> 
80 columns per line to the file

Есть ли способ сделать стандартный вывод более широким при подсчете количества столбцов консоли? Это out.exe что-то портит столбцы? В моем случае я использую fxcopcmd.exe.

Ответы [ 4 ]

40 голосов
/ 22 июля 2009

Я столкнулся с подобной проблемой некоторое время назад. Вот что я сделал, чтобы это исправить:

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

Он просто устанавливает новую ширину в 500 символов в выходном буфере RawUI хоста (хотя, поскольку мы запускаем нашу сборку в нескольких средах, и мы не хотели, чтобы скрипт не работал, просто потому, что он не мог сделать вывод немного больше код довольно оборонительный).

Если вы работаете в среде, которая всегда устанавливает RawUI (и большинство так), код может быть значительно упрощен:

$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 25)
11 голосов
/ 11 июня 2009

Командлеты out-file и out-string имеют параметр width:

out.exe | out-file -width 132 -filePath $file
0 голосов
/ 20 февраля 2015

Если вы говорите о Windows PowerShell - просто откройте «Свойства> Макет», чтобы увеличить размер буфера + размер окна

enter image description here

0 голосов
/ 09 мая 2014

В моем скрипте powershell я установил первую строку, чтобы не делать возврат каретки во второй строке я вручную сделал возврат.

(внутри цикла)

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

Write-Host "`r"

Это перевесило проблему, когда моя строка была обернута, но возвращалась после каждой отдельной записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...