2016-08-08 66 views
1

需要在PowerShell中啓動多個作業,但它們應該處於不同的會話中。所以要啓動一個,可以使用:使用-NoExit啓動PowerShell不起作用

Start-Process powershell -ArgumentList "-command &{Get-Process}","-noexit","-noprofile" 

但是,一旦命令結束,新窗口關閉。即使我使用-NoExit參數。根據this articlethis question,這應該工作。即使試圖阻止窗口,通過等待用戶輸入,但它只是關閉。

回答

2

雖然命令參數命名,位置仍然是關鍵(見PowerShell.exe /?):

Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{Get-Process}" 
+0

不知道。認爲命名參數排除了將它們放置在特定位置的必要性。 – Syphirint

+1

@Syphirint(幾乎總是)真正_within_ powershell(值得注意的例外是當你使用[ValueFromRemainingArguments](https://technet.microsoft.com/en-us/library/hh847743.aspx)),並經常在命令行,但是.exe可以以任何想要的方式定義其參數。在這種情況下,由於類似的原因,'-command'需要處於末尾:附加參數是否是命令的一部分將是不明確的。 – briantist

+0

它確實只是它需要的 - 命令是最後的,因爲它含有最模糊的內容。避免擔心「命令結束了嗎?」的最簡單方法是讓它持續並讀到輸入結尾。 –