Robocopy多/SD参数支持性及作业文件多源目录配置问题咨询
Robocopy多/SD参数支持性及作业文件多源目录配置问题咨询
兄弟,你踩的这个坑我之前也遇到过!确实,Robocopy单次执行只允许使用一个/SD参数,这就是你在作业文件里添加第二条/SD行时弹出Invalid Job File错误的核心原因——工具本身就没设计支持多/SD的场景。
那要实现多源目录备份到同一网络共享的需求,给你几个实用的解决方案:
方案一:用批处理脚本批量调用Robocopy(最推荐)
写一个简单的批处理文件,多次调用Robocopy,每个调用对应一个源目录,共享同一个目标路径和备份参数。这样既能分开管理不同源的备份,还能避免文件冲突。示例脚本如下:@echo off :: 定义备份目标路径 set "BACKUP_DEST=\\YourNetworkShare\UserBackup\" :: 备份用户数据目录 robocopy "C:\PATH\TO\FIRST\DIR\" "%BACKUP_DEST%UserData\" /S /E /COPYALL /R:3 /W:5 :: 备份应用配置目录 robocopy "C:\PATH\TO\SECOND\DIR\" "%BACKUP_DEST%AppConfigs\" /S /E /COPYALL /R:3 /W:5注:
/S//E是递归备份参数,/COPYALL是复制所有文件属性,/R:3//W:5是重试次数和等待时间,你可以根据需求调整。方案二:拆分多个Robocopy作业文件
如果你特别想用作业文件来管理参数,可以给每个源目录单独创建一个作业文件,再用批处理批量执行这些作业:- 第一个作业文件
BackupUserData.rcj:::Robocopy Job Source:C:\PATH\TO\FIRST\DIR\ Dest:\\YourNetworkShare\Backup\UserData\ /S /E /COPYALL - 第二个作业文件
BackupAppConfigs.rcj:::Robocopy Job Source:C:\PATH\TO\SECOND\DIR\ Dest:\\YourNetworkShare\Backup\AppConfigs\ /S /E /COPYALL - 执行批处理
RunAllBackups.bat:@echo off robocopy /JOB:BackupUserData robocopy /JOB:BackupAppConfigs
- 第一个作业文件
方案三:单次Robocopy调用指定多源目录(慎用)
Robocopy的命令行模式支持直接指定多个源目录(不需要/SD参数),一次性复制到同一目标,但要注意同名文件会被覆盖,适合文件结构完全不重叠的场景。示例命令:robocopy "C:\PATH\TO\FIRST\DIR\" "C:\PATH\TO\SECOND\DIR\" \\YourNetworkShare\CombinedBackup\ /S /E /COPYALL不过这种方式没法直接写入作业文件,因为Robocopy作业文件仅支持单个
Source=配置项。
备注:内容来源于stack exchange,提问作者theillien
相关产品推荐
相关产品推荐

