2013-03-19 53 views
1

我想創建支持一個參數數組的函數,類似於的ParamArray在VB.Net:PowerShell中的ParamArray

function foo{ 

    param(
    $a, 
    $b, 
    [Array]$arr 
    ) 

    write-host "a: $a" 
    write-host "b: $b" 
    write-host "arr: $arr" 

    Foreach($s in $arr) { 
    write-host $s 
    } 

} 

PS> foo -a "abc" -b "123" -c 456 -d 789 

不幸的是,參數「c」和「D」中沒有發現。有沒有辦法將Param()定義爲支持我的需求?

+1

如果你的腳本只需要輸入一個數組,爲什麼不使用'富-a 「ABC」 -b 「123」 -arr 456,789'? – 2013-03-19 17:23:41

回答

1

PowerShell的$args自動變量包含任何額外的參數。

嘗試運行:

function foo { 
    param(
     $a, 
     $b 
    ) 

    "a: $a" 
    "b: $b" 
    foreach($arg in $args) { 
     "Arg: $arg" 
    } 
} 

foo -a 1 -b 2 3 4 5 

輸出:

a: 1 
b: 2 
Arg: 3 
Arg: 4 
Arg: 5 
+0

非常好。謝謝。 – craig 2013-03-19 17:42:09