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"
}

相关文章

  • Shell 中常用 Date 日期的计算

    Shell 中常用 Date 日期的计算

    这篇文章主要为大家介绍了Shell中常用Date日期的计算详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Windows Powershell分析和比较管道结果

    Windows Powershell分析和比较管道结果

    这篇文章主要介绍了Windows Powershell分析和比较管道结果,需要的朋友可以参考下
    2014-09-09
  • Powershell小技巧之使用Update-TypeData扩展类型系统

    Powershell小技巧之使用Update-TypeData扩展类型系统

    昨天演示获取时辰《PowerShell获取当前的时辰 》,并不只是为了获取时辰,还为了使用Update-TypeData命令将时辰这一属性,牢牢地帮到DateTime类型上。
    2014-09-09
  • Powershell小技巧之屏蔽输出结果

    Powershell小技巧之屏蔽输出结果

    这篇文章主要介绍了Powershell的一个小技巧--屏蔽输出结果,需要的朋友可以参考下
    2014-09-09
  • 类似rpm包管理器的Windows Installer PowerShell Module简介

    类似rpm包管理器的Windows Installer PowerShell Module简介

    前两篇文章分享了使用PowerShell安装Window程序的一些技巧。但是都是基于兼容已有命令行的调用。今天分享一个第三方组件,让你直接可以使用Cmdlet命令来查询,安装,修复Windows程序
    2014-05-05
  • PowerShell中字符串使用单引号和双引号的区别

    PowerShell中字符串使用单引号和双引号的区别

    这篇文章主要介绍了PowerShell中字符串使用单引号和双引号的区别,大家可能会经常遇到这个问题,需要的朋友可以参考下
    2014-08-08
  • Powershell中获取所有磁盘盘符的方法

    Powershell中获取所有磁盘盘符的方法

    这篇文章主要介绍了Powershell中获取所有磁盘盘符的方法,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • powershell常用命令分类

    powershell常用命令分类

    本文创建了powershell常用命令 ,主要分为get类、set类、write类三大类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2014-10-10
  • PowerShell是什么?

    PowerShell是什么?

    这篇文章主要介绍了PowerShell是什么?本文解读了PowerShell的一些术语,对PowerShell做了一个完全介绍,需要的朋友可以参考下
    2014-08-08
  • Powershell中使用WMI工具例子

    Powershell中使用WMI工具例子

    这篇文章主要介绍了Powershell中使用WMI工具例子,本文先是讲解了列出WMI类的方法,然后根据需要使用相应的WMI类,需要的朋友可以参考下
    2014-11-11

最新评论