如何删除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"
}

  • 做得很好; 还值得一提的是,`Write-Host` 永远不应该用于输出 _data_。

以上是如何删除Powershell中的前导和尾随空格?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>