2009-04-07 5 views

Répondre

4

Si vous utilisez Powershell V2 ou version ultérieure, vous pouvez utiliser la variable $ PSBoundParameters qui est un dictionnaire qui répertorie tous les paramètres liés à périmètre courant.

Voir this article de blog qui en parle.

1

À moins qu'il est possible de piéger les exceptions lancées à partir de la déclaration de param (et depuis doit être param le premier, je ne vois pas cela fonctionnerait):

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

Alors je ne vois pas un moyen (vous obtenez la même chose avec les paramètres [switch]: par défaut ou explicitement -mySwitch:$false).

1

La solution basée sur l'idée de Richard:

$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 
Questions connexes