2009-04-07 6 views

Antwort

4

Wenn Sie Powershell V2 oder höher verwenden, können Sie die $ PSBoundParameters Variable verwenden, die ein Wörterbuch, das alle gebundenen Parametern in aktuellen Bereich auflistet.

Siehe this Blogpost, der darüber diskutiert.

1

Sofern es möglich ist, Ausnahmen zu stoppen aus param Anweisung geworfen (und da param der erste sein, kann ich nicht sehen, dies funktionieren würde):

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

Dann kann ich nicht sehen, wie man (Sie erhalten das Gleiche mit [switch] Parametern: Standard oder explizit -mySwitch:$false).

1

Die Lösung basiert auf Richard Idee:

$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