You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 ...

错误原因

  1. 变量名拼写错误:遍历代码中定义的变量是$printing,但在$debug字符串里误写为$print,PowerShell对未定义的变量会解析为无意义字符或空值。
  2. 无效变量赋值:$string = i这行代码无意义,i未加引号会被PowerShell当作命令/变量解析,可能干扰其他变量的正常取值。
  3. 缺少输出语句:原代码仅定义了$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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:13:25