首页 > 解决方案 > Powershell导入csv,其中列数据与txt文件中的数据匹配

问题描述

我有一个名为 CompanyName 的 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  }

标签: powershellcsvfiltertxtimport-from-csv

解决方案


您的代码对我有用,只需要对该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  }

推荐阅读