You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除PowerShell中WMI-Object与Select-Object输出的空行?

移除PowerShell Format-List输出开头的空行

这个问题其实是PowerShell里格式化cmdlet的默认行为导致的——Format-List这类输出格式化结果的命令,会在输出开头添加空行来做视觉分隔。要去掉这些空行,有几个简单的办法:

方法1:用Out-String结合Trim()处理输出

把格式化后的结果转换成字符串,再用Trim()方法移除首尾的空白(包括多余的空行),是最直接的方案:

$Pro = Get-WmiObject -Class win32_processor
($Pro | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors | Format-List | Out-String).Trim()

原理说明:

  • Out-String会把Format-List输出的格式化对象转换成一个完整的字符串(包含所有行和空行)
  • .Trim()方法会自动移除字符串开头和结尾的所有空白字符,包括开头的那两行空行,同时保留中间正常的格式

方法2:直接输出属性(如果不需要严格的List格式)

如果可以接受更简洁的输出格式,也可以跳过Format-List,直接循环输出每个属性:

$Pro = Get-WmiObject -Class win32_processor
$Pro | ForEach-Object {
    Write-Host "Name : $($_.Name)"
    Write-Host "NumberOfCores : $($_.NumberOfCores)"
    Write-Host "NumberOfLogicalProcessors : $($_.NumberOfLogicalProcessors)"
}

这种方式完全没有多余空行,输出更紧凑,但需要手动拼接每行内容。

另外提一句:在PowerShell 5.1及以上版本,微软推荐使用Get-CimInstance替代Get-WmiObject(后者已经被标记为过时),替换后的命令也能适用上面的解决方案,比如:

$Pro = Get-CimInstance -ClassName win32_processor
($Pro | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors | Format-List | Out-String).Trim()

内容的提问来源于stack exchange,提问作者user12682332

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:42:35