我想执行一个如下所示的命令:
# $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"
如果我手动编写上面的命令,它可以工作但不使用我的字符串连接代码。如何使用字符串连接来实现此功能?
答案 0 :(得分:2)
不要使用字符串连接。在数组中收集您的参数:
$traits = foreach ($IncludeTrait in $IncludeTraits) {
if ($IncludeTrait) { '-trait'; $IncludeTrait }
}
然后使用该数组运行命令:
& $exe $traits
或使用splatting:
& $exe @traits