Luk*_*her 4 powershell powershell-core
此命令打开一个新的 powershell 窗口,运行命令,然后退出:
Start-Process powershell { echo "hello"; sleep 1; echo "two"; sleep 1; echo "goodbye" }
Run Code Online (Sandbox Code Playgroud)
如果我改为启动 Powershell Core,它会打开一个新窗口,但新窗口会立即退出:
Start-Process pwsh { echo "hello"; sleep 1; echo "two"; sleep 1; echo "goodbye" }
Run Code Online (Sandbox Code Playgroud)
使用 pwsh 进行此类调用的正确方法是什么?
不要使用{ ... }带有Start-Process-的脚本块 ( ),它作为字符串绑定到-ArgumentList参数,这意味着它的文字内容- 除了封闭的{和}- 被传递。
在Windows PowerShell ( powershell.exe) 中,CLI 的默认参数是-Command.
在 PowerShell Core (v6+, pwsh.exe/pwsh ) 中,它是-File[1],这就是您的命令失败的原因。
因此,在 PowerShell Core 中,您必须显式使用-Command( -c):
Start-Process pwsh '-c', 'echo "hello"; sleep 1; echo "two"; sleep 1; echo "goodbye"'
Run Code Online (Sandbox Code Playgroud)
[1] 为了在类 Unix 平台上的shebang 行中正确支持 PowerShell Core 的使用,此更改是必要的。
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |