PowerShell中使用正则和ValidateSet验证参数合法性
更新时间:2015年04月11日 09:25:36 投稿:junjie
这篇文章主要介绍了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小技巧之使用Update-TypeData扩展类型系统
昨天演示获取时辰《PowerShell获取当前的时辰 》,并不只是为了获取时辰,还为了使用Update-TypeData命令将时辰这一属性,牢牢地帮到DateTime类型上。2014-09-09
类似rpm包管理器的Windows Installer PowerShell Module简介
前两篇文章分享了使用PowerShell安装Window程序的一些技巧。但是都是基于兼容已有命令行的调用。今天分享一个第三方组件,让你直接可以使用Cmdlet命令来查询,安装,修复Windows程序2014-05-05


最新评论