【问题标题】:PowerShell Parameter list of valuesPowerShell 参数值列表
【发布时间】:2014-02-08 01:13:24
【问题描述】:

我一直在尝试寻找答案,但我认为将 PowerShell 和参数这两个词放在一组关键字中并不容易搜索

我的问题是,我正在编写一个函数,并且我提供了一个参数,但该参数必须是特定字符串列表之一。

有没有一种方法可以在脚本中提供这些字符串,这样如果我输入“myfunction -parameter ..”,我就可以对参数值使用制表符补全?

【问题讨论】:

    标签: powershell parameters


    【解决方案1】:

    如果您使用的是 PowerShell V2,则可以使用 [ValidateSet()] 属性,例如:

    param(
        [Parameter()]
        [ValidateSet('foo','bar','baz')]
        [string[]]
        $Item
    )
    

    通过执行查看帮助主题:

    man about_functions_advanced_parameters
    

    【讨论】:

      【解决方案2】:

      您可以使用[ValidateSet()],正如 Keith 所演示的那样,但这不适用于大量可能的值(当您点击 Tab 时填充列表变得非常慢)。另一种获得制表符完成的方法是制作自定义枚举:

      http://blogs.msdn.com/b/powershell/archive/2008/06/03/v2-custom-enums.aspx

      并将参数转换为该枚举类型。这确实对字符串中允许的字符集(基本上只是字母和数字)施加了一些限制,但如果它是一个相对较大的值列表,它将更快地填充制表符完成列表。

      【讨论】:

      • 给定的链接现在是 404
      猜你喜欢
      • 2015-10-29
      • 1970-01-01
      • 2013-02-01
      • 2015-03-29
      • 1970-01-01
      • 2011-11-24
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多