空の文字列が指定されている場合は、デフォルト値を使用します。私はより洗練された何かのために、$Var
が空であるかどうかをチェックするためのif文を持っていて、それをデフォルトに設定することを望んでいます。誰でも知ることができますか? PowerShellバージョン2.0もサポートする必要があります。PowerShell関数で空の文字列を指定したときのデフォルト値の使い方は?
以下は、私が達成しようとしていることのスニペットです。空の文字列を与えられたら、 "Var:DEFAULT"と印刷します。
$ErrorActionPreference = "Stop"
function Test-Function(
[parameter(Mandatory = $true)][string] $Var = "DEFAULT"
) {
# If Mandatory is set to $true an error is thrown
# "Cannot bind argument to parameter 'password' because it is an empty string."
# When Mandatory is set to $false, $Var is an empty string rather than "DEFAULT"
Write-Host "Var: $Var"
}
$EmptyString = ""
Test-Function -Var $EmptyString
これはデフォルト値を使用しません。パラメータがnullまたは空であることを示す例外をスローします。この例外をスローする代わりに、デフォルト値を使用したいと思います。 –
"これを行うにはエレガントな方法はありません。少なくとも、組み込みの方法はありません。文字列がnullでも空でもないことを検証するだけです。"with '[ValidateNotNullOrEmpty()]' –