我有一个包含 .jpg 文件的文件夹。我将这些与访问数据库中的产品相关联。产品来源之一提供了这些 .jpg 文件,但它们不允许您仅轻松下载当前使用的图片。因此,我找到了一个 PowerShell 脚本来删除我不需要的文件。
$exclusions = Get-Content C:\Users\office\Desktop\ExcludedPhotos.txt
dir -rec M:\PhotoDirectory\PhotoFolder | Where-Object {$exclusions -notcontains $_.name } | Remove-Item
Run Code Online (Sandbox Code Playgroud)
归功于@x0n Powershell 脚本,用于删除列表中未指定的文件
而且效果很好!但问题是它需要永远,我有超过 180,000 项要搜索和删除。所以我想做一个进度条,让我知道我已经完成了多少过程。
所以经过一番搜索,我找到了一篇名为“使用进度条”的文章
问题是我不知道如何将两者混合在一起,但是我在这里尝试过:
$exclusions = Get-Content C:\Users\office\Desktop\ExcludedPhotos.txt
1..100 | foreach-object {
Write-Progress -Activity "Deleting Files" -Status "$_ %" -Id 1 -PercentComplete $_ -CurrentOperation "Deleting File $_"
dir -rec M:\PhotoDirectory\PhotoFolder | Where-Object {$exclusions -notcontains $_.name } | Remove-Item
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎比原始脚本花费的时间更长,我不知道它是如何工作的,当我只需要删除 10-15 个文件时,我正在测试它。
很可能我缺少一些非常基本的东西,但我真的很感激能帮助理解这一点。
在这里,我添加了一个屏幕截图: