运行以下命令的位置:
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"
}