2016-08-08 20 views
1

Sie müssen mehrere Jobs in PowerShell starten, aber sie sollten in verschiedenen Sitzungen sein. So eine starten, könnte man verwenden:PowerShell starten mit NeinExit funktioniert nicht

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

Aber das neue Fenster wird geschlossen, sobald der Befehl beendet. Obwohl ich -NoExit Parameter verwende. Dies sollte gemäß this article und this question funktionieren. Habe sogar versucht das Fenster zu blockieren, indem ich auf eine Benutzereingabe gewartet habe, aber es schließt sich einfach.

Antwort

2

Während die Befehlsparameter genannt werden, ist Position nach wie vor kritisch (siehe PowerShell.exe /?):

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

nicht kannte. Dachte, dass die Benennung der Parameter die Notwendigkeit der Positionierung an einem bestimmten Ort ausschloss. – Syphirint

+1

@Syphirint das ist (fast immer) wahr _within_powershell (die bemerkenswerte Ausnahme ist, wenn Sie [ValueFromRemainingArguments] (https: // technet.microsoft.com/en-us/library/hh847743.aspx)), und oft auf der Kommandozeile, aber eine .exe kann ihre Parameter beliebig definieren. In diesem Fall muss "-command" aus einem ähnlichen Grund am Ende stehen: Es wäre mehrdeutig, ob ein zusätzlicher Parameter Teil des Befehls ist oder nicht. – briantist

+0

Es ist wirklich nur, dass es - Befehl benötigt, um zuletzt zu sein, weil es den vagen Inhalt hat. Der einfachste Weg, sich keine Sorgen zu machen über "Wo ist das Ende des Befehls?" soll es dauern und bis zum Ende der Eingabe lesen. –