将CSV文件批量导入PowerShell

将CSV文件批量导入PowerShell,csv,powershell,import,Csv,Powershell,Import,我有一个满是.CSV文件的目录。我希望PowerShell导入每个文件并将每个文件存储为单独的变量。目前,我依靠while循环,让用户手动输入每个CSV文件 但是,手动输入对于用户来说非常繁琐和耗时,我希望PowerShell能够自动完成这项任务。这样做的最佳方式是什么?我曾考虑过让PowerShell通过“*.csv”生成一个列表,将其保存到一个变量中,然后在所述列表上循环以进行大规模导入。有没有更好的办法完成这项任务?提前感谢。我认为最好是将文件导入哈希表,其中文件名是键,导入的数据是值,而

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


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

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

$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]

}

嗯,我以前从未使用过哈希表,我一定会研究它们并尝试你的建议。现在,我让脚本查看每个CSV文件中的特定标题,以便随着时间的推移自动跟踪更改。我想你只是给我展示了一种更有效的方法来做我一直在做的事情。谢谢