目标:当用户输入不在列表中的颜色时,它应默认为灰色.如果用户在列表中选择应该使用颜色的颜色.
实际发生的事情:颜色总是默认为灰色.
纯文本示例1:选择颜色:黄色,绿色,红色,紫色或灰色.用户:蓝色.输出:颜色为灰色.
纯文本示例2:选择颜色:黄色,绿色,红色,紫色或灰色.用户:绿色.输出:颜色为绿色.
[CmdletBinding()]
param (
[Parameter(Mandatory=$True, HelpMessage="Choose yellow, green, red, purple or gray")]
[string]$color_select
)
$colors_list = "yellow", "green", "red", "purple", "gray", "random"
if ($color_select -notcontains $colors_list) {
$color_select = "gray"
}
Write-host "The color is: $color_select"
Run Code Online (Sandbox Code Playgroud)
在我看来,这样做更容易:
[CmdletBinding()]
param (
[Parameter(HelpMessage="Choose yellow, green, red, purple or gray")]
[ValidateSet('yellow','green','red','purple',"gray", "random")]
[string]$color_select="gray"
)
Run Code Online (Sandbox Code Playgroud)
如果您打算省略参数,则将参数设置为必需参数是没有意义的.
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |