Powershell Script to md5 ha sh контрольная сумма только для новых файлов - PullRequest
0 голосов
/ 25 мая 2020

сценарий PowerShell, использующий

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

, скажем, я запускаю этот скрипт в своей папке Media, а затем через 2 дня я добавил еще 20 видео в папку, как я могу заставить PowerShell генерировать хэши только для новые 20 файлов, которые я добавил, и добавить хэши к существующему csv без повторения sh всей папки, если это возможно, вы можете отредактировать мой сценарий, спасибо

1 Ответ

0 голосов
/ 25 мая 2020

Вы можете проверить файлы последнего обновления после времени последнего изменения 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

Альтернативой является импорт csv Path столбец и ha sh только те файлы, которых там еще нет:

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...