2010-01-13 13 views
8

Ich habe einige Powershell-Skripte, die viele lange Parameter akzeptieren, wie,Müssen PowerShell-Skripts nur mit einer einzigen Zeile aufgerufen werden?

myScript.ps1 -completePathToFile "C:\...\...\...\file.txt" -completePathForOutput "C:\...\...\...\output.log" -recipients ("[email protected]") -etc. 

ich nicht Powershell laufen solche Skripte zu machen, wenn alle Parameter sind in einer einzigen Zeile erscheinen kann. Gibt es eine Möglichkeit, das Skript mehr so ​​aufzurufen?

Der Mangel an Lesbarkeit macht mich verrückt, aber die Skripte müssen wirklich diese parametrischen sein.

Antwort

13

PowerShell denkt, dass der Befehl am Ende der Zeile abgeschlossen ist, es sei denn, es sieht bestimmte Zeichen wie eine Pipe, open paren oder open curly. Legen Sie einfach eine Zeile Fortsetzungszeichen `` `am Ende jeder Zeile, aber stellen Sie sicher, dass es keine Leerzeichen nach dem Fortsetzungszeichen:

myScript.ps1 ` 
    -completePathToFile "C:\...\...\...\file.txt" ` 
    -completePathForOutput "C:\...\...\...\output.log" ` 
    -recipients (
    "[email protected]", ` 
    "[email protected]" ` 
    ) 

Wenn Sie auf Powershell 2.0 Sie auch diese Parameter in einer Hash-Tabelle setzen können und Verwendung splatting zB:

$parms = @{ 
    CompletePathToFile = 'C:\...\...\...\file.txt' 
    CompletPathForOutput = 'C:\...\...\...\output.log' 
    Recipients   = '[email protected]','[email protected]' 
} 
myScript.ps1 @parms 
+0

ich habe festgestellt, dass der Komma-Operator genug ist, um Powershell in der nächsten Zeile weiter, so lange es tatsächlich ist es als Operator Parsen und keine String-Parameter, die in‘enden, ' –

+0

Danke. Ich bin mir sicher, dass andere Zeichen darauf hinweisen, dass es mehr PowerShell gibt. Nicht sicher, es gibt eine dokumentierte Liste von diesen. –

+0

Keith, danke, dass du mich daran erinnert hast, dass es in Posh einen Splatting gibt. Ich lese es und vergesse es dann. Jetzt sehe ich, dass es viele Möglichkeiten für die Arbeit mit Skript-/Funktionsparametern bietet. – stej

Verwandte Themen