powershell一个变量中的多个参数

时间:2016-07-21 22:45:56

标签: powershell

我希望将可变数量的args放入一个变量中 script.ps1 first -second a -third b

我想要的是"第一个 - 第二个 - 第三个b"都在一个变量中。

如果不将所有参数作为一个字符串传递,这是否可行?

2 个答案:

答案 0 :(得分:3)

您可以使用单个变量的param( [Parameter(Mandatory=$true,ValueFromRemainingArguments=$true)] [psobject[]]$InputObject ) foreach($value in $InputObject) { Write-Host $value } 属性中的ValueFromRemainingArguments option

script.ps1

PS C:\> .\script.ps1 many arguments can go here
many
arguments
can
go
here

现在您可以提供任意数量的参数:

{{1}}

答案 1 :(得分:1)

如果要将列表中的第一个参数视为子命令并将其余参数传递给其他函数/ cmdlet,我只需split'n'splat {{ 3}} $args,例如像这样:

$subcommand, $params = $args

switch ($subcommand) {
  'foo'   { Do-Some @params }
  'bar'   { Do-Other @params }
  default { Write-Error "Unknown subcommand: $_" }
}