Powershell 导入 csv,其中列数据与 txt 文件中的数据匹配

Powershell import csv where column data matches data in txt file

我有一个名为 CompanyName 的 header 的 csv 文件。 在 csv 中有大量的行和不同的公司名称。 但是我保留了一个文本文件,其中包含我需要检索其数据的特定公司。 通过 PowerShell 可以通过 txt 文件进行 Where-Object 检查。 类似于:

Import-Csv -Path myCSV | Where-Object { $_.'CompanyName' -in names.txt}

以上实际上不起作用。 我什至将文本文件中的名称放入一个数组中并尝试这样检查,但它也不起作用。

$arr = [string[]]$arrayFromFile = Get-Content -Path "names.txt"
Import-Csv -Path myCSV | Where-Object {$_.'CompanyName' -in $arr  }

你的代码对我有用,只需要在 Get-Content 部分进行小的修改。

无需转换为字符串数组,但如果您想具体说明类型也可以。

应该是这样的-

[string[]]$arr = Get-Content -Path "names.txt"

整个事情没有类型转换。文件夹中需要 names.txt 和 mycsv.csv,或者使用完整路径。

$arr = Get-Content -Path "names.txt"

Import-Csv -Path "myCSV.csv" | Where-Object {$_.CompanyName -in $arr  }