Powershell 使用内联变量填充数组

Powershell 使用内联变量填充数组,powershell,Powershell,在使用变量填充脚本时,我通常使用以下格式: $string = ("Hi my name is {0} and I live in {1}, {2}." -f $username,$usercity,$userstate) 但是,这似乎不适用于数组,或者我可能完全弄错了语法: $Arguments = @("/Settings:{0}", "/Tests:{1}", "/output:{2}" -f $TestSetting,$TestList,$Output) 当我输出该关联的结果时,所有

在使用变量填充脚本时,我通常使用以下格式:

$string = ("Hi my name is {0} and I live in {1}, {2}." -f $username,$usercity,$userstate)
但是,这似乎不适用于数组,或者我可能完全弄错了语法:

$Arguments = @("/Settings:{0}", "/Tests:{1}", "/output:{2}" -f $TestSetting,$TestList,$Output)

当我输出该关联的结果时,所有结果都显示为一个字符串(替换正确)。如果我看一下
计数
,它是1。我遗漏了什么?

数组中的每个值都需要使用自己的运算符作为自己的表达式:

$Arguments = @(("/Settings:{0}" -f $TestSetting), ("/Tests:{0}" -f $TestList), ("/output:{0}" -f $Output))

另一种方法:
$arguments=(“/Settings:{0}”、“/Tests:{1}”、“/output:{2}”-f$TestSetting、$TestList、$output)-split'
为了澄清原因,因为-f在左侧接受字符串,而不是数组。Micky Balladelli的建议之所以有效,只是因为左侧的数组被动态转换为字符串,而将数组转换为字符串会将元素与空格连接起来。它本质上与
$arguments=(“/Settings:{0}/Tests:{1}/output:{2}”-f$TestSetting,$TestList,$output)-拆分“”
。OP的代码将$Arguments设置为具有单个字符串元素的数组,正是出于这个原因,-f运算符使左侧的数组转换为字符串。