gpt4 book ai didi

PowerShell中使用正则和ValidateSet验证参数合法性

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PowerShell中使用正则和ValidateSet验证参数合法性由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

适用于PowerShell 2.0或着更高版本 。

当你使用PowerShell 创建了一个函数时,要确保你告诉PowerShell 你的参数期望什么样的值。比如你想用户输入星期 。

复制代码 代码如下:

function Get-Weekday
{
  param
  (
    $Weekday
  )
  
  "You chose $Weekday"
}

此时用户可以输入任何值,即使这个值不是一个合法的星期,比如星期七 。

复制代码 代码如下:

PS> Get-Weekday -Weekday NoWeekday
You chose NoWeekday

也许你之前还见过正则表达式类型的验证方式:

  。

  。

复制代码 代码如下:

function Get-Weekday
{
param
(
[ValidatePattern('Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday')]
$Weekday
)
 
"You chose $Weekday"
}

现在一旦用户输入的字符串与你指定的模式不匹配时,Powershell会抛出一个异常,但是这个异常信息不够友好。在输出参数时,控制台或着ISE编辑器也不能智能提示:

  。

所以更好的方式应当是使用ValidateSet

  。

复制代码 代码如下:

function Get-Weekday
{
param
(
[ValidateSet('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')]
$Weekday
)
 
"You chose $Weekday"
}

现在用户在输出参数时被限定在你规定的值集合中,另外在ISE中还会智能提示用户允许的值列表。如果你能在.NET的类型中找到一个枚举值刚好描述你需要的参数,那就更易如反掌了:

复制代码 代码如下:

function Get-Weekday
{
param
(
[System.DayOfWeek]
$Weekday
)
 
"You chose $Weekday"
}

最后此篇关于PowerShell中使用正则和ValidateSet验证参数合法性的文章就讲到这里了,如果你想了解更多关于PowerShell中使用正则和ValidateSet验证参数合法性的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com