【问题标题】:How to use Pipe (|) in powershell -Command ...?如何在powershell -Command ...中使用管道(|)?
【发布时间】:2021-03-10 14:59:25
【问题描述】:

我想从 Windows 控制台命令行执行 powershell 命令。我的方法是:

c:\>powershell -Command mypowershellstatment1;mypowershellstatment1;etc

问题:

如果一个复杂的 powershell 命令包含 powershell 管道运算符,那么 Windows 控制台似乎会对其进行解释,而不是将其作为参数按字面意思传递给 powershell 可执行文件。

例如:

c:\>powershell -Command mypowershellstatment1 | anything;mypowershellstatment1;etc

给出标准控制台错误消息“'anything' 不被识别为内部或外部命令” 可运行的程序或批处理文件。

问题

如何解决这个问题?

【问题讨论】:

  • 转义 |^: Get-Something ^| Do-Something
  • 请注意,如果您直接从命令行运行而不是创建某种命令行脚本,您可以简单地先输入powershell,然后您将收到PS > 提示符可以在本机输入任何你想要的 powershell 命令,而不必担心转义。
  • 为什么你的-Command 值没有用双引号括起来?它是一个命令字符串。
  • @Efie 因为它是 Azure 配置扩展,所以我不会在那里“先简单地键入 powershell”
  • @AdminOfThings 因为语句本身都包含双引号和单引号

标签: powershell cmd console


【解决方案1】:

由于|在cmd中有类似的功能,所以需要转义。

在 cmd 中,适当的转义序列是 ^|:

C:\>powershell -Command Get-Something ^| Do-Something

【讨论】:

    【解决方案2】:

    powershell "command1 | command2 | command3... | commandN-1 | commandN"

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 2012-05-10
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多