我目前正在尝试处理好一些文件,而且这个过程正在进行中。这些文件都是通过guid命名的,并且有相应的CSV文件,其中包含一个列,其中包含我试图查找的每个guid。因此,我在CSV文件中获取包含guid的列,然后让PowerShell在files文件夹中搜索匹配的guid。以下是我到目前为止,是否有可能以某种方式并行运行此搜索,因此它一次搜索多个文件而不是一次搜索多个文件?
$CSV = Import-Csv 'D:\CSVs\csv\test.csv'
$files = Get-ChildItem 'X:\'
$destinationPath = "D:\files\"
ForEach ($guid in $CSV) {
$files | Where-Object { $_.Name -match $guid.FileGUID } | Copy-Item -Destination $destinationPath
}
答案 0 :(得分:2)
您可以通过索引哈希表中的所有$files
来加快搜索速度:
$CSV = Import-Csv 'D:\CSVs\csv\test.csv'
$files = @{}
Get-ChildItem X:\ |ForEach-Object {
$files[$_.Name] = $_
}
$destinationPath = "D:\files\"
ForEach ($guid in $CSV) {
if($files.Contains($guid)){
$files[$guid] |Copy-Item -Destination $destinationPath
}
}