2009-04-07 93 views

回答

4

如果您在使用PowerShell V2或更高版本,您可以使用$ PSBoundParameters變量,它是在目前的範圍內列出了所有綁定參數的字典。

請參閱this博客文章,討論它。

1

除非是可以從PARAM語句引發異常陷阱(既然PARAM必須是第一個,我看不出這會工作):

function { 
    trap { "Something failed" } 
    param($foo = $(throw "Foo not specified")) 
    ... 

然後我看不到的方式(你可以用[switch]參數得到同樣的結果:默認或明確-mySwitch:$false)。

1

根據理查德的想法的解決方案:

$missed = "{716C1AD7-0DA6-45e6-854E-4B466508EB96}" 

function Test($foo = $missed, $bar) 
{ 
    if($foo -eq $missed) { 
     Write-Host 'Missed' 
    } 
    else 
    { 
     Write-Host "Foo: $foo" 
    } 
} 

Test -foo $null 
Test