• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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)相关命令
    • linux shell实现随机数几种方法分享(date,random,uuid)
    • PowerShell中iso8601格式日期和DateTime对象互转实例
    • Shell脚本实现随机数多种方法介绍(date、random、uuid)
    • Powershell小技巧之使用Update-TypeData扩展类型系统
    • PowerShell中使用Get-Date获取日期时间并格式化输出的例子
    • PowerShell中Get-Date对象的常用属性和方法介绍
    • shell语言date的用法实例
    上一篇:PowerShell实现批量重命名文件
    下一篇:Powershell实现加密解密文本文件方法实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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