Powershell 脚本到 md5 哈希校验和仅新文件



PowerShell 脚本 im 使用

Get-ChildItem -Path 'D:MyMediaFiles' -Recurse -File | 
Get-FileHash -Algorithm MD5 | 
Export-Csv -Path 'D:MediaHashes.csv' -UseCulture -NoTypeInformation

假设我在媒体文件夹上运行此脚本,然后 2 天后我又向该文件夹添加了 20 个视频,如何使 powershell 仅为我添加的新 20 个文件生成哈希,并将哈希添加到现有 csv 而无需再次重新哈希整个文件夹 如果可能的话,请编辑我的脚本 谢谢

您可以检查上次更新在 csv 文件上次修改时间之后的文件。

像这样:

$csvFile = 'D:MediaHashes.csv'
$csvDate = (Get-Item -Path $csvFile).LastWriteTime
Get-ChildItem -Path 'D:MyMediaFiles' -Recurse -Exclude '*.csv' -File | 
Where-Object { $_.LastWriteTime -gt $csvDate } |
Get-FileHash -Algorithm MD5 | 
Export-Csv -Path $csvFile  -UseCulture -NoTypeInformation -Append

另一种方法是导入 csvPath列并仅对尚未存在的文件进行哈希处理:

$csvFile = 'D:MediaHashes.csv'
# get an array of the files already hashed
$filesDone = (Import-Csv -Path $csvFile -UseCulture).Path
Get-ChildItem -Path 'D:MyMediaFiles' -Recurse -Exclude '*.csv' -File | 
Where-Object { $filesDone -notcontains $_.FullName } |
Get-FileHash -Algorithm MD5 | 
Export-Csv -Path $csvFile -UseCulture -NoTypeInformation -Append

最新更新