2011-01-13 13 views
3

Ich habe ein Skript test.ps1 wie folgt:Powershell-Befehlszeilenparameter Null oder leer

param(  
     $a = "ValueA" 
) 

jetzt, wenn es von der aus meiner msbuild Projektdatei Kommandozeile aufrufen als

folgt \ test.. ps1 -a "" . \ test.ps1 -a $ null

Es weist $ a nicht den Standardwert "ValueA" zu. Ich möchte den Standard "Value" $ a zuweisen, auch wenn der Benutzer es Null oder leere Werte übergeben. Ich weiß, ich kann verwenden, wenn konstruieren, aber ich frage mich, ob es einen schnelleren Weg gibt, dies zu erreichen. Irgendeine Idee?

Antwort

0

Ich denke, es gibt keinen kürzeren Weg als wenn Konstrukt für solche Fälle (Editor Klarstellung: solche Fälle sind Fälle, in denen Sie explizit die Parameter angeben, etwas anderes als der Standard im Aufruf sein).

+0

ich mit dieser Antwort einverstanden. Sie sagen ausdrücklich, dass der Parameter beim Aufruf "null" sein soll. Wenn Sie möchten, dass der Parameter "null" als Standardwert verwendet, müssen Sie dafür einen Code schreiben. – TravisEz13

0

param ( $ a = "ValueA" )

$ a = ("ValueA", $ a) [[int] [bool] $ a]

+0

Okay, also ist es nicht wirklich kürzer. – mjolinor

Verwandte Themen