Удалить пустые строки в выходной в PowerShell

Я пытаюсь удалить пустые строки до и после выхода, но это просто не работает. Я попытался добавить-NoNewLine после самого первого узла записи, но до сих пор удаляет только одну пустую строку.

код:

  $tag1 = "c91638"

    Write-Host "Operating System Information"


    $OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1 

    $OSInfo `
        | Format-List `
            @{Name="OS Name";Expression={$_.Caption}}, 
            @{Name="OS Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}}, 
            @{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}}; 

    Write-Host "Line test.."

выходы:

Operating System Information


OS Name         : Microsoft Windows 7 Enterprise 
OS Boot Time    : 8/27/2015 2:05:35 AM
OS Install Date : 4/4/2014 11:39:15 AM



Line test..

что я хочу сделать:

Operating System Information

OS Name         : Microsoft Windows 7 Enterprise 
OS Boot Time    : 8/27/2015 2:05:35 AM
OS Install Date : 4/4/2014 11:39:15 AM

Line test..

2 ответов


попробуйте это вместо этого:

($OSInfo `
    | Format-List `
        @{Name="OS Name";Expression={$_.Caption}}, 
        @{Name="OS Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}}, 
        @{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}}  `
    | Out-String).Trim()

это очистит все посторонние пустые строки, созданные Format-List. Возможно, Вам понадобится вставить пару собственных, которые вы сможете контролировать.


просто чтобы добавить замечание, потому что я вижу, что это делается все время, даже сейчас - Format-List и Format-Table должны только используется для вывода текста в консоль.

если у вас есть объекты для вывода в виде текстовых файлов, CSV и т. д., то вы просто должны Select-Object чтобы захватить объекты, которые вы хотите, а не ft или fl. Тогда вы можете применить свой Out-String если требуется форматирование текста.

выше пример должен быть:

($OSInfo `
| Select-Object `
    @{Name="OS Name";Expression={$_.Caption}}, 
    ... `
| Out-String).Trim()