I finally got tired of manually comparing directories in File Explorer to ensure my latest versions were backed up. Sometimes I would just drag-and-drop entire large directories to be "safe," but it resulted in long wait times and a lot of needless copying.
To fix this, I spent a several hours (with more than a little help from Copilot) developing a menu-driven PowerShell script. It uses RoboCopy to backup and restore only new or changed files.
The script features 8 automated options:
- Backup (Mirror): Syncs source to destination.
- Backup Mirror (Dry Run): Tests the backup without moving files.
- Restore (Safe): Restores files without overwriting newer versions.
- Restore Safe (Dry Run): Tests the restore process.
- Report Backup Direction: Lightweight "what would change" check for backups.
- Report Restore Direction: Lightweight check for restores.
- Diff Report (Both Directions): A verbose report comparing both source and destination.
- Eject Drive: Safely removes your backup media.
Key Features:
Safe Mirroring: Since the /mir command can delete files in the backup that no longer exist in the source, the script asks for confirmation before any deletions occur.
Non-Destructive Restore: The "Safe Restore" option will never accidentally overwrite a newer file with an older backup version.
Defaults: You can easily change the default source and destination paths using Notepad.
Dry Runs vs. Reports: Options 2 and 4 are true "simulation" runs of the actual jobs, while Options 5 and 6 provide lightweight reports—for quick checks on massive datasets.
I'm not sure of the rules for attachments. I attached a zip and a script might get flagged by your browser.



