我正在尝试删除输出前后的空白行,但它只是不起作用。我在第一个Write-Host之后尝试添加-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..
答案 0 :(得分:14)
请改为尝试:
($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
产生的所有无关的空白行。您可能需要插入自己控制的几个。
答案 1 :(得分:4)
只是添加一条评论,因为我发现这一切都在进行,即使是现在 - Format-List
和Format-Table
应仅用于在控制台中输出文字
如果您要将对象输出为文本文件,CSV等,那么您只需Select-Object
来抓取所需的对象,而不是ft
或fl
。然后,如果需要文本格式,则可以应用Out-String
。
上面的例子应该是:
($OSInfo `
| Select-Object `
@{Name="OS Name";Expression={$_.Caption}},
... `
| Out-String).Trim()