下面的代码从list.txt文件中搜索400多个数字,查看它们是否存在于指定文件夹路径中的任何文件中。
该脚本非常缓慢,运行了25分钟仍未完成。我们要搜索的文件夹大小为507MB(532,369,408字节),其中包含1,119个文件和480个文件夹。非常感谢帮助提高搜索速度和效率的任何帮助。
该脚本非常缓慢,运行了25分钟仍未完成。我们要搜索的文件夹大小为507MB(532,369,408字节),其中包含1,119个文件和480个文件夹。非常感谢帮助提高搜索速度和效率的任何帮助。
$searchWords = (gc 'C:\temp\list.txt') -split ','
$results = @()
Foreach ($sw in $searchWords)
{
$files = gci -path 'C:\Users\david.craven\Dropbox\Asset Tagging\_SJC Warehouse_\_Project Completed_\2018\A*' -filter "*$sw*" -recurse
foreach ($file in $files)
{
$object = New-Object System.Object
$object | Add-Member -Type NoteProperty –Name SearchWord –Value $sw
$object | Add-Member -Type NoteProperty –Name FoundFile –Value $file.FullName
$results += $object
}
}
$results | Export-Csv C:\temp\output.csv -NoTypeInformation
$sw
吗?问题听起来像是这样,但脚本只查找文件名。 - vonPryzGet-ChildItem
。最后,尝试使用 PsCustomObject 方法,而不是New-Object
/Add-Member
,因为管道可能会减慢速度。 - boxdogselect-string
是PowerShell中grep
的类比,它可以搜索多个模式以及正则表达式。 - phuclv