PowerShell中的Vlookup

PowerShell中的Vlookup,powershell,Powershell,我需要这个vlookup代码才能在PowerShell中工作 =VLOOKUP(A1,File_2.csv!$B:$C,2,false) 基本上,我有2个CSV,我需要从文件_2.CSV(第2列)中的特定列检索数据,并将其插入文件_1.CSV中的新列 文件_1.csv ID NAME --- ------ 1 Alpha 2 Bravo 3 Charlie ID STATUS --- ------- 1 Active 2 Inactive 3 Ac

我需要这个
vlookup
代码才能在PowerShell中工作

=VLOOKUP(A1,File_2.csv!$B:$C,2,false)
基本上,我有2个CSV,我需要从文件_2.CSV(第2列)中的特定列检索数据,并将其插入文件_1.CSV中的新列

文件_1.csv

ID NAME --- ------ 1 Alpha 2 Bravo 3 Charlie ID STATUS --- ------- 1 Active 2 Inactive 3 Active 目前我得到的结果是:

ID NAME STATUS --- ------ ------- 1 Alpha #NAME? 2 Bravo #NAME? 3 Charlie #NAME? ID名称状态 --- ------ ------- 1字母名称? 2好极了,你叫什么名字? 3查理的名字?
但是,当我在Excel中手动输入
vlookup
公式时,它工作得非常完美。不确定我哪里弄错了。

将一个CSV读入将ID映射到值的哈希表:

$data = @{}
Import-Csv 'File_2.csv' | ForEach-Object { $data[$_.ID] = $_.STATUS }
然后使用将这些值作为新字段添加到其他CSV的数据中:

Import-Csv 'File_1.csv' |
    Select-Object *, @{n='STATUS';e={if ($data.Contains($_.ID)) {$data[$_.ID]} else {'N/A'}}}

如果需要将结果返回Csv,请将结果导入导出Csv。

后续问题-如果没有任何匹配项,如何添加默认备注(例如“N/a”)
$data = @{}
Import-Csv 'File_2.csv' | ForEach-Object { $data[$_.ID] = $_.STATUS }
Import-Csv 'File_1.csv' |
    Select-Object *, @{n='STATUS';e={if ($data.Contains($_.ID)) {$data[$_.ID]} else {'N/A'}}}