Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This sample PowerShell script compares the files in two different paths by calculating and comparing hashes for each file. I use it to compare my backup to the source data, after the backup is complete.
$SourcePath = "D:\" $BackupPath = "F:\Backup 2018-05-27\" Write-Progress -Activity "Getting File List" -PercentComplete 0 $FileList = DIR $SourcePath -Recurse -File $Total = $FileList.Count $Count = 0 $BadCount = 0 $FileList | % { $File = $_.FullName $Backup = $File.Replace($SourcePath, $BackupPath) Try { $Match = (Get-FileHash $File).Hash -eq (Get-FileHash $Backup).Hash } Catch { $Match = $false } If (-not $Match) { $BadCount++ "Hash mismatch: $File, $Backup" } $Count++ If ($Count % 1000 -eq 0) { Write-Progress -Activity "File $Count of $Total" -PercentComplete ($Count/$Total*100) } } Write-Progress -Activity "Checking Files" -Completed "There were $BadCount bad files out of the $Count files checked"
Comments
- Anonymous
November 26, 2018
Thanks, I was able to take this and create a script to compare two directories and their children then update or create a file at a backup destination. I was able to make some efficiency improvements and It's able to loop through ~22,000 files in half the time. I'd like to share but I'm new to this and am not sure where I should do that.