は、このような機能を検討省略されていることを知ることができる:どのように私はPowerShellの機能パラメータは
function Test($foo, $bar)
{
...
}
我々はそれを呼び出すことができます。
-fooが省略されたときに私が知ることができますどのようにTest -foo $null
Test
、それ$ nullでしたか?
は、このような機能を検討省略されていることを知ることができる:どのように私はPowerShellの機能パラメータは
function Test($foo, $bar)
{
...
}
我々はそれを呼び出すことができます。
-fooが省略されたときに私が知ることができますどのようにTest -foo $null
Test
、それ$ nullでしたか?
するとあなたはPowerShellのV2以降を使用している場合は、あなたは現在のスコープで、すべてのバインドされたパラメータを示した辞書である$ PSBoundParameters変数を使用することができます。
これについては、thisのブログ記事を参照してください。
それはのparamの文からスロートラップの例外に可能である(とparamは最初にしなければならないため、私はこれが働くだろう見ることができない)場合を除き:
function {
trap { "Something failed" }
param($foo = $(throw "Foo not specified"))
...
その後、私は道を見ることはできません([スイッチ]パラメータで同じことができます:デフォルトまたは明示的に-mySwitch:$false
)。リチャードの考え方に基づいて
ソリューション:
$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