PowerShell 2处理多CSV文件 匹配数据修正foreach嵌套循环问题
问题原因
你当前的嵌套foreach逻辑会让每个姓名都遍历完整的手机号列表,循环结束后$number只会保留手机号列表最后一行的值,完全无法实现按对应行匹配的需求。
正确实现方案
- 首先保证两个CSV行数完全一致,按对应行匹配的前提是行序一一对应
- 使用
for循环通过索引同步遍历两个CSV数组,取相同索引位置的元素配对
完整代码示例
# 1. 导入两个CSV文件,替换为你自己的文件路径 $users = Import-Csv -Path "./姓名表.csv" $numbers = Import-Csv -Path "./手机号表.csv" # 2. 前置校验:行数不匹配直接中断 if ($users.Count -ne $numbers.Count) { Write-Error "两个CSV行数不一致,无法按行匹配" exit 1 } # 3. 按索引同步遍历执行关联逻辑 for ($index = 0; $index -lt $users.Count; $index++) { # 取相同行的姓名和手机号 $currentUsername = $users[$index].Mail $currentPhone = $numbers[$index].ID # 这里替换为你自己的业务逻辑 Write-Host "执行关联:姓名 = $currentUsername,手机号 = $currentPhone" }
内容的提问来源于stack exchange,提问作者branedge
相关产品推荐
相关产品推荐

