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

PowerShell中循环匹配输出Incident ID与SystemID格式问题求助

解决PowerShell数组插值与格式输出问题

我一眼就看出问题出在PowerShell的字符串插值上啦!你当前的代码里,直接在双引号里写$arrIncidentID[$i]的时候,PowerShell会先把整个数组$arrIncidentID展开成空格分隔的字符串,再把[$i]当成普通文本拼接,这就导致了输出里的奇怪格式。

要解决这个问题,我们需要用子表达式语法$()把数组的索引操作包裹起来,让PowerShell先计算出数组对应下标的元素,再插入到字符串中。同时调整输出文本的格式,匹配你想要的样式:

$IncidentID="INC0010164~INC0010165"
$arrIncidentID = $IncidentID -split '~'
$SysID = "d80fd7e2dbab4300479a7e7dbf96195d~7f0f97e2dbab4300479a7e7dbf9619ec"
$arrSystemID = $SysID -split '~'

if ($arrIncidentID.Length -eq $arrSystemID.Length) {
    for ($i=0; $i -lt $arrIncidentID.length; $i++) {
        # 用$()包裹数组索引操作,确保正确插值单个元素
        "Incident ID $($i+1): - $($arrIncidentID[$i])"
        "SystemID $($i+1): - $($arrSystemID[$i])"
    }
}

关键修正点:

  • 把$arrIncidentID[$i]改成$($arrIncidentID[$i]),让PowerShell先执行索引获取单个元素,再插入字符串
  • 用$($i+1)来生成从1开始的序号(因为你的预期输出是从1计数,而数组下标从0开始)
  • 调整了输出文本的格式,和你想要的样式完全匹配

运行这段代码后,你会得到预期的输出:

Incident ID 1: - INC0010164
SystemID 1: - d80fd7e2dbab4300479a7e7dbf96195d
Incident ID 2: - INC0010165
SystemID 2: - 7f0f97e2dbab4300479a7e7dbf9619ec

内容的提问来源于stack exchange,提问作者NottyHead

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:56:49