字符在简单分配上丢失了

时间:2014-06-30 18:30:18

标签: arrays string powershell variable-assignment powershell-v3.0

我有一个非常奇怪的问题,在powershell中连接一个简单的字符串。

我有一个填充整数的数组(让我们称之为$ countArray),以及一个填充字符串的数组($ reportMsg)。我正在使用这些元素创建消息描述,以新行结束。这是为数字数组中的每个元素完成的。

$description= "`"";
foreach($num in $countArray){
    if($num -gt 0){
        $description+=[string]$num[$i] + $reportMsg[$i]+"`n";
    }
    $i++
}
$description+="`","

Write-output $description

问题在于,当我执行此操作时,只有第一个数字连接到字符串。我100%确定$ num数组中的所有值都已分配。在PowerShell ISE的调试器中,它甚至显示$ num有一个值,它只是没有分配给$ description。

期望的输出:

"10 - apples detected
19 - oranges detected
4 - bananas detected
100 - guavas detected",

当前输出:

"10 - apples detected
 - oranges detected
 - bananas detected
 - guavas detected",

我做错了什么?

1 个答案:

答案 0 :(得分:3)

如果不确切知道那些数组中的内容很难说,但我怀疑这一点:

$description+=[string]$num[$i] + $reportMsg[$i]+"`n";

应该是

$description+=[string]$num + $reportMsg[$i]+"`n";