PowerShell遍历二维数组时输出异常,结果不符合预期
PowerShell二维数组遍历错误修正
问题说明
构建二维数组后遍历输出时得到了无意义的结果,相关代码与输出如下:
数组初始化代码
$details = @() $row = @(6.00, "First", "Normal", 20, "") $details += $row $row = @(12.00, "First", "Normal", 12, "") $details += $row
遍历代码
foreach ($item in $details) { $price = $item[0] $edition = $item[1] $printing = $item[2] $stock = $item[3] $modifier = $item[4] $string = i $debug = "Added data for : $edition / $print ..." }
错误输出
Added data for: i / r ... Added data for: i / r ...
预期输出
Added data for : First / Normal ... Added data for : First / Normal ...
错误原因
- 变量名拼写错误:遍历代码中定义的变量是
$printing,但在$debug字符串里误写为$print,PowerShell对未定义的变量会解析为无意义字符或空值。 - 无效变量赋值:
$string = i这行代码无意义,i未加引号会被PowerShell当作命令/变量解析,可能干扰其他变量的正常取值。 - 缺少输出语句:原代码仅定义了
$debug变量,但没有实际输出该内容的语句。
修正后的代码
$details = @() $row = @(6.00, "First", "Normal", 20, "") $details += $row $row = @(12.00, "First", "Normal", 12, "") $details += $row foreach ($item in $details) { $price = $item[0] $edition = $item[1] $printing = $item[2] $stock = $item[3] $modifier = $item[4] # 移除无效的$string赋值,或按需改为正确的字符串定义,比如$string = "" $debug = "Added data for : $edition / $printing ..." Write-Host $debug # 输出调试信息 }
修正后输出
Added data for : First / Normal ... Added data for : First / Normal ...
内容的提问来源于stack exchange,提问作者Paul Williams
相关产品推荐
相关产品推荐

