是否有可能镜像这两个目录,而不会覆盖目标目录中的文件与新/更改/删除的文件。 像快照。
示例:将所有文件和子目录的源目录复制到目标目录,但如果目标目录包含源文件夹中的文件A.xls
和A.xls
,则复制A.xls
但保留先前的A
在目的地目录中。 要保留以前的文件date戳或计数器可以添加到文件名。
复制后的示例:
SomeDirectory
| –A.xls
| –A_20120701.xls
| –A_20120920.xls
谢谢。
不,使用Robocopy这是不可能的。 使用Robocopy镜像文件夹path将删除目标中不存在的文件。 您可以确保您不覆盖旧版本的文件,但在复制过程中不能保留旧版本/重新命名。
我编写了一个命令脚本/batch file来复制修改过的文件,但是会根据脚本的运行date创build树结构
例如我的树为一个特定的文件将是。
c:\_archive\201209\ 23\ 0930 Todays notes.txt 1145 Todays notes.txt 24\ 1000 Todays notes.txt
如果您觉得有用,我可以发布该脚本的示例。
由于受欢迎的需求,请在下面find我的基本备份脚本。
@echo off cls rem parse the output of the date /t command to create a date in the format yyyymmdd, and also remove the delimiter (/) rem store the results in environment variables for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_DATE=%%k%%j%%i for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_YEAR=%%k for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_MONTH=%%j for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_DAY=%%i echo date %Z_DATE% echo year %Z_YEAR% echo month %Z_MONTH% echo day %Z_DAY% rem parse the output of the time /t command to remove the delimeter (:) rem store the result in an environment variable for /f "tokens=1,2 delims=:. " %%i IN ('time /t') do SET Z_TIME=%%i%%j echo time %Z_TIME% rem change the colour to a nice deep green on black. color 02 ::------------------------- @echo on xcopy "c:\MyFiles\*.*" "C:\MyArchive\ByDate\%Z_YEAR%%Z_MONTH%\%Z_DAY%\%Z_TIME%%~p1%~n1\" /ksymhr @if @@ERRORLEVEL==1 SET Z_BACKUP_ERROR_FLAG=1 Goto End ::--------------------------------------------------------------------------- :NotifyUser echo. echo An error occurred during the backup. echo. pause ::--------------------------------------------------------------------------- :End echo %Z_DATE% echo %Z_TIME% time /t rem Clear out the environment variables SET Z_DATE= SET Z_TIME= SET Z_BACKUP_ERROR_FLAG=
如果您对此脚本有任何疑问(我从主备份脚本中快速拆分了它,并没有对其进行彻底testing),那么请在主题为“服务器故障备份脚本查询”的gmail帐户中向我发送电子邮件。 如果你可以不用询问我的Gmail地址,那么我很乐意帮助你。