使用 -NoExit 启动 PowerShell 不起作用

Syp*_*int 3 powershell

需要在 PowerShell 中启动多个作业,但它们应该在不同的会话中。因此,要启动一个,可以使用:

Start-Process powershell -ArgumentList "-command &{Get-Process}","-noexit","-noprofile"
Run Code Online (Sandbox Code Playgroud)

但是一旦命令完成,新窗口就会关闭。即使我正在使用-NoExit参数。根据这篇文章这个问题,这应该有效。甚至试图通过等待用户输入来阻止窗口,但它只是关闭了。

Chr*_*ent 7

虽然命名了命令参数,但位置仍然很重要(请参阅 PowerShell.exe /?):

Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{Get-Process}"
Run Code Online (Sandbox Code Playgroud)

  • @Syphirint 是(几乎总是)真正的 _within_ powershell(值得注意的例外是当您使用 [ValueFromRemainingArguments](https://technet.microsoft.com/en-us/library/hh847743.aspx)),并且经常在命令上行也是如此,但 .exe 可以以任何方式定义其参数。在这种情况下,出于类似的原因,`-command` 需要放在末尾:附加参数是否是命令的一部分是不明确的。 (3认同)