【问题标题】:Powershell import csv where column data matches data in txt filePowershell导入csv,其中列数据与txt文件中的数据匹配
【发布时间】:2021-10-18 18:09:17
【问题描述】:

我有一个标题为 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  }

【问题讨论】:

    标签: powershell csv filter txt import-from-csv


    【解决方案1】:

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

    【讨论】:

    • 谢谢其实我的代码确实有效。只是 names.txt 中的文本在每一行的末尾都有空格。所以修剪后它起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2015-10-04
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    相关资源
    最近更新 更多