手机
当前位置:查字典教程网 >脚本专栏 >PowerShell >PowerShell中使用正则和ValidateSet验证参数合法性
PowerShell中使用正则和ValidateSet验证参数合法性
摘要:适用于PowerShell2.0或着更高版本当你使用PowerShell创建了一个函数时,要确保你告诉PowerShell你的参数期望什么样...

适用于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函数中限制数组参数个数的例子

PowerShell中使用Get-EventLog读取、筛选系统日志的例子

PowerShell中使用return语句退出函数例子

PowerShell中使用正则表达式筛选数组实例

PowerShell中调用外部程序和进程操作命令例子

PowerShell生成随机密码的方法

PowerShell中使用正则表达式匹配字符串实例

PowerShell创建Byte数组例子

PowerShell函数用Hash表传参实例

Powershell中使用WMI工具例子

精品推荐
分类导航