运行 通过 cmd 带引号的 powershell 命令

Run powershell command with quote marks via cmd

我需要通过 CMD运行 一个 powershell 命令

我的命令是

(Get-WmiObject -Class win32_pnpEntity -Filter 'Name like "ACPI Thermal Zone"')
[1].GetDeviceProperties().DeviceProperties  |
Select-Object -Property keyName, data

我得到了成功的结果:

但是,当我尝试使用 cmd 运行 相同的命令时,我在查询执行中遇到异常。 它看起来像是命令中带有引号的东西。

cmd命令

powershell -command "(Get-WmiObject -Class win32_pnpEntity -Filter 'Name like "ACPI Thermal 
Zone"')"

命令错误

请帮忙,我想念什么?

编辑

我尝试了双引号和转义字符,但没有成功

您可以在 CMD 级别 通过使用反斜杠 (\") 转义双引号来解决此问题:

PowerShell -command "Get-WmiObject -Class win32_pnpEntity -Filter 'Name like \"ACPI Thermal Zone\"'"

... 或者 WMI 查询也接受 single quotes for names in filters.
您也可以简单地避免 WMI 查询中的双引号,并在 PowerShell 级别 [=25] 中使用(转义的)单引号 ('') 解决此问题=]:

PowerShell -command "(Get-WmiObject -Class win32_pnpEntity -Filter 'Name like ''ACPI Thermal Zone''')"