将CSV文件大量导入PowerShell

时间:2015-07-25 00:28:12

标签: csv powershell import

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

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

1 个答案:

答案 0 :(得分: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]

}