附加/连接字符串参数

时间:2016-01-18 14:50:22

标签: powershell parameter-passing powershell-v3.0

我想执行一个如下所示的命令:

# $IncludeTraits is a String[]
$exe = "C:\Foo.exe";
$traits;
foreach ($IncludeTrait in $IncludeTraits)
{
    if ($IncludeTrait -ne $null -and $IncludeTrait -ne "")
    {
        $traits = $traits + "-trait `"$IncludeTrait`" "
    }
}

& $exe $traits

最终命令应如下所示:

Foo.exe -trait "One" -trait "Two" -trait "Three"

如果我手动编写上面的命令,它可以工作但不使用我的字符串连接代码。如何使用字符串连接来实现此功能?

1 个答案:

答案 0 :(得分:2)

不要使用字符串连接。在数组中收集您的参数:

$traits = foreach ($IncludeTrait in $IncludeTraits) {
  if ($IncludeTrait) { '-trait'; $IncludeTrait }
}

然后使用该数组运行命令:

& $exe $traits

或使用splatting

& $exe @traits