【问题标题】:unable to run powershell command via command prompt [duplicate]无法通过命令提示符运行 powershell 命令 [重复]
【发布时间】:2016-03-26 18:27:10
【问题描述】:

以下命令通过 powershell 运行良好。

gwmi Win32_Product -filter "name like 'Java%' AND vendor like 'Oracle%' AND not version = '8.0.770.3'" | % { $_.Uninstall() }

我想在不使用脚本文件或打开 powershell 的情况下运行它,而只需通过命令提示符调用 powershell.exe。我收到以下错误

找不到接受参数“java%”的位置参数。

请帮忙。

【问题讨论】:

    标签: powershell cmd


    【解决方案1】:

    应该是引号的问题。

    在批处理中使用powershell.exe(运行 PowerShell 命令)时,应特别注意引用规则。

    批处理主要使用双引号,因此您可以安全地执行以下操作:

    • 将整个 PowerShell 命令放在一个脚本块中,用双引号和& 运算符括起来,以使 PowerShell 调用该命令。
    • 将命令中的所有双引号替换为单引号。
    • 在 WMI 过滤器中使用双引号。

    最终结果应如下所示:

    powershell.exe -Command "& {gwmi Win32_Product -filter 'name like ''Java%'' AND vendor like ''Oracle%'' AND not version = ''8.0.770.3''' | % { $_.Name }}"
    

    当然,还有其他方法可以做同样的事情。

    【讨论】: