如何删除Powershell中的前导空格和尾部空格



运行以下命令的位置:

Write-Host '"os":"'(Get-CimInstance -ClassName CIM_OperatingSystem).Caption'",'

我得到以下输出:

"os":" Microsoft Windows 10 Pro ",

如何删除输出中的前导和尾随空格??

这是因为要将3个不同的字符串参数传递给Write-Host,cmdlet然后用空格将它们分隔开:

Write-Host '"os":"'(Get-CimInstance -ClassName CIM_OperatingSystem).Caption'",'
______/______________________________________________________/__/

更改为

Write-Host """os"":""$((Get-CimInstance -ClassName CIM_OperatingSystem).Caption)"","

在这里,我们使用正确转义的引号创建1(一!(个字符串,Write-Host不会尝试添加任何空白。


如果目标是生成JSON,我建议构建一个新对象,并由ConvertTo-Json处理其余部分:

$data = [pscustomobject]@{
os = (Get-CimInstance -ClassName CIM_OperatingSystem).Caption
}
$data |ConvertTo-Json

其输出将类似于:

{
"os":  "Microsoft Windows 10 Enterprise"
}

最新更新