Удалить пустые строки в выходной в 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()