我有一个文件列表,我需要从多年价值每月的文件归档中删除这些文件。 文本文件中大约有400多个文件名,大约5年的月度归档文件按年份分类在文件夹中。
我的脚本执行了一个双循环,在每个存档中查找每个文件并将其删除,但是速度非常慢。 我正在寻找有关如何改进方法的任何建议。谢谢!
set-alias rar "C:\Program Files\7-Zip\7z.exe"
$archives = get-childitem 'D:\Archive Data\APP_P\website\Document\exports\Exports Archive\Archive\2014exports' -Recurse
write-host $archives
Get-Alias rar
foreach ($archive in $archives ) {
write-host $archive.Mode
$exports = Get-Content C:\scripts\ScottTrade_cleanup.txt.txt
foreach ($export in $exports){
write-host $export
rar d $archive.FullName $export -r
}
}
答案 0 :(得分:0)
因此,您在使用时出现了次要的性能问题
$exports = Get-Content C:\scripts\ScottTrade_cleanup.txt.txt
将其移出循环
最大的问题是,您要为每个要删除的文件重新加载一个zip文件。我们需要解决此问题。取出文件列表中的文件,摆脱内循环,然后运行:
rar d $archive.FullName -r @FullListFilePathNameExtension
我的第一个解决方案是将包含开关(-i)与删除一起使用,但是Windows不支持超过8k的命令行。