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

PowerShell实现两个CSV文件deviceName匹配并提取对应id

用PowerShell匹配两个CSV文件的deviceName并输出对应ID

核心思路

先把包含deviceName和id的第二个CSV转换成哈希表(键为deviceName,值为id),这样查找匹配项的效率会很高,尤其是处理大文件时。接着遍历第一个CSV的deviceName,在哈希表里查找对应的id并输出结果。

代码示例

# 替换成你的两个CSV文件实际路径
$firstCsvPath = "你的路径\第一个文件.csv"
$secondCsvPath = "你的路径\第二个文件.csv"

# 读取CSV文件为PowerShell对象
$targetDevices = Import-Csv -Path $firstCsvPath
$deviceIdSource = Import-Csv -Path $secondCsvPath

# 构建deviceName到id的映射哈希表
$deviceIdMap = @{}
foreach ($item in $deviceIdSource) {
    $deviceIdMap[$item.deviceName] = $item.id
}

# 遍历目标设备,匹配并输出结果
foreach ($device in $targetDevices) {
    $deviceName = $device.deviceName
    if ($deviceIdMap.ContainsKey($deviceName)) {
        # 输出匹配到的设备名和ID
        [PSCustomObject]@{
            deviceName = $deviceName
            id         = $deviceIdMap[$deviceName]
        }
    } else {
        # 可选:输出未找到匹配的设备(不需要的话可以删掉这段)
        [PSCustomObject]@{
            deviceName = $deviceName
            id         = "无匹配ID"
        }
    }
}

额外说明

  • 如果需要把结果导出到新的CSV文件,在代码最后加上:
    | Export-Csv -Path "匹配结果.csv" -NoTypeInformation
    
  • 哈希表的优势是查找速度快,当第二个CSV文件条目很多时,比逐行比对的效率高得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:52:05