提问人:upgrad3 提问时间:11/9/2023 更新时间:11/9/2023 访问量:39
传递不带参数的参数,如“-Force”
Pass parameter with no argument, like '-Force'
问:
我想定义一个参数,以便在调用函数时仅接受参数名称或别名;即在调用 cmdlet 并使用“-Force”时。
我有一个“用户输入”功能,并希望该函数有一个选项来接受用户的可选输入(用户只需点击“Enter”而不提供输入)。
对于调用函数时的示例:
$usrInput = uInput “请输入计算机名称” -AllowNull
我试图允许传递“-AllowNull”,传递后,该函数将接受一个空字符串。而不是使用参数调用函数:
$usrInput = uInput “请输入计算机名称” -AllowNull “是”
或
$usrInput = uInput “请输入计算机名称” -AllowNull $True
我尝试了不同的组合:
[AllowNull()]
[AllowEmptyString()]
[Validatenotnullorempty()]
[string]$allowNull
一些组合会起作用,我可以检查 $allowNull 的值('has value'、bool. 或 $null/'Empty'),但在调用函数时我仍然需要传递参数;不能只使用“-AllowNull”
我什至尝试过“[switch]”参数:
[switch]$allowNull
但是,在调用函数时,这仍然需要布尔值作为参数。
答: 暂无答案
评论
[swtch]$allowNull
是正确的。不起作用?& {param([switch]$AllowNull)} -AllowNull
-AllowNull:$true
-AllowNull:$false
-AllowNull:$somevariable
-AllowNull
-AllowNull:$true
File
进行 CLI 调用,其中当前不能有空格 - 请参阅 GitHub 问题 #10838-Foo:$false
& { param([switch] $Foo) $Foo } -Foo: $false