【问题标题】:How can I allow my script to allow any parameter?如何允许我的脚本允许任何参数?
【发布时间】:2015-06-29 00:53:25
【问题描述】:

我试图弄清楚如何让我的 PowerShell 脚本允许任意参数,而无需指定使用 param 可能期望的所有内容。

四处搜索我发现我可以使用$args$myinvocation.mycommand.unboundarguments

我想做的是-

.\myscript.ps1 -prop1 "foo" -prop2 "bar"

这样做的目的是我计划使用该属性来评估密钥对以更新我的配置文件。

这样的事情可能吗?

【问题讨论】:

  • 改为接受哈希表?

标签: powershell command-line-interface


【解决方案1】:

$Args 将捕获所有未明确定义为参数的输入。

请参阅about_Automatic_Variables 了解更多信息。

【讨论】:

    【解决方案2】:

    @Jon-Tirjan 的回答中$Args 的插图,
    显示它如何跳过已声明的参数。

    # myscript.ps1
    
    param (
        [string] $param1,
        [string] $param2
    )
    
    Write-Host "param1 = $param1"
    Write-Host "param2 = $param2"
    
    $n = 0
    foreach ($arg in $args) {
        write-host "$n $arg"
        $n += 1
    }
    

    .\myscript.ps1 -param2 'p2' -foo -bar bim -param1 'p1' -zip zap

    param1 = p1
    param2 = p2
    0 -foo
    1 -bar
    2 bim
    3 -zip
    4 zap
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 2017-10-06
      • 2020-04-11
      • 1970-01-01
      相关资源
      最近更新 更多