【问题标题】:Mass importing CSV files into PowerShell将 CSV 文件大量导入 PowerShell
【发布时间】:2015-10-15 18:43:59
【问题描述】:

我有一个充满 .CSV 文件的目录。我希望 PowerShell 导入每个文件并将每个文件存储为单独的变量。目前我依靠一个while循环并让用户手动输入每个CSV文件。

但是,手动输入对用户来说非常繁琐且耗时,我希望 PowerShell 自动执行此任务。这样做的最佳方法是什么?我曾考虑让 PowerShell 通过“*.csv”生成一个列表,将其保存到一个变量中,然后循环遍历所述列表以进行批量导入。有没有更好的方法来完成这项任务?提前致谢。

【问题讨论】:

    标签: csv powershell import


    【解决方案1】:

    我认为最好的方法是将文件导入到哈希表中,而不是将每个文件保存为自己的变量,其中文件名是键,导入的数据是值。

    $CSVData = @{}
    Get-ChildItem '.\*.csv' | ForEach{$CSVData.Add($_.Name,(Import-CSV $_.FullName))}
    

    然后,假设您要访问的文件之一是“MarchSales.csv”。您可以简单地引用$CSVData['MarchSales.csv'] 来处理数据。想要处理每个文件中的数据吗?像这样的东西可以工作:

    ForEach($filename in $CSVData.Keys){
    
        Do Stuff With $CSVData[$filename]
    
    }
    

    【讨论】:

    • 嗯,我以前从未使用过 Hashtables,我一定会研究它们并尝试您的建议。现在,我让脚本查看每个 CSV 文件中的特定标题,以自动跟踪随时间的变化。我怀疑你只是向我展示了一种更有效的方法来做我一直在做的事情。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多