A Windows batch script for efficiently duplicating a source file to multiple destination files with various operational modes.
duplicatefile.cmd is a command-line utility that allows you to copy a single source file to multiple destination files in one operation. It supports both direct file specification and list-based operations, with an optional dry-run mode for testing.
duplicatefile <source_file> [-dry] [-list] <out_file1> .. <out_filen>
<source_file> - The file to be duplicated (required)[-dry] - Optional flag for dry-run mode (shows operations without executing)[-list] - Optional flag to use list file mode<out_file1> .. <out_filen> - Target destination filesCopy source file to multiple specified destinations:
duplicatefile source.txt file1.txt file2.txt file3.txt
This will copy source.txt to file1.txt, file2.txt, and file3.txt.
Use a text file containing the list of target destinations:
duplicatefile source.txt -list targets.txt
The targets.txt file should contain one destination file per line:
backup1.txt
subfolder/backup2.txt
../backup3.txt
logs/archive.txt
Preview operations without actually copying files:
duplicatefile source.txt -dry file1.txt file2.txt file3.txt
duplicatefile source.txt -dry -list targets.txt
The script automatically creates target directories if they don't exist:
duplicatefile config.ini backup/2025/config.ini logs/config.ini
-list modeSupports various path formats:
backup/file.txt../archive/file.txtC:\backups\file.txtduplicatefile database.db -list backup_locations.txt
With backup_locations.txt:
daily/database_2025-06-12.db
weekly/database_week24.db
monthly/database_june.db
archive/database_backup.db
duplicatefile app.config -dry ^
server1/app.config ^
server2/app.config ^
test/app.config
duplicatefile current.log ^
archive/2025-06-12.log ^
backup/current_backup.log ^
../shared/current.log
Source file: source.txt
Target files: file1.txt file2.txt file3.txt
Copying: "source.txt" -> "file1.txt"
Success
Copying: "source.txt" -> "file2.txt"
Success
Copying: "source.txt" -> "file3.txt"
Success
Operation completed.
[DRY RUN MODE] - No files will be copied
Source file: source.txt
Target files: file1.txt file2.txt file3.txt
[DRY RUN] Would copy: "source.txt" -> "file1.txt"
[DRY RUN] Would copy: "source.txt" -> "file2.txt"
[DRY RUN] Would copy: "source.txt" -> "file3.txt"
Operation completed.
The script handles various error conditions:
Error: Source file "missing.txt" does not existError: List file "targets.txt" does not existUse list files to maintain consistent backup locations:
duplicatefile production.db -list db_backup_targets.txt
Use dry-run mode to verify operations before execution:
duplicatefile config.ini -dry -list deployment_targets.txt
duplicatefile.cmdThe script is self-contained and requires no additional dependencies.