batch file备份 – 将当前文件与名称不规则的子DIR中最近不同名称的文件进行比较

随着Dropbox的Packrat我有一个batch file,我已经计划要求在周一,周三和周五运行备份我的当前项目的Photoshop,Fireworks和PHP / WWW文件到服务器上。

命令是沿着的:

PAUSE set "myDate=%date:~6,4% %date:~3,2% %date:~0,2%" set "myDateNoSpaces=%date:~6,4%%date:~3,2%%date:~0,2%" mkdir "\\Server\Archive\%myDate%" copy "A:\File.psd" "\\Server\Archive\%myDate%\File%myDateNoSpaces%.psd" robocopy "A:\WAMP\www" "\\Server\Archive\%myDate%\www" /MIR 

该命令没有定期运行,在这个项目上没有工作的日子,我只是closures了窗口,而不是在PAUSE prommpt上按下一个button。 我也手动运行批处理命令。 这会创build一个不规则的date模式。 PST文件是500MB。

例如:

 2014 07 15 <DIR> 2014 07 18 <DIR> 2014 07 22 <DIR> 2014 07 23 <DIR> 2014 07 28 <DIR> 2014 07 30 <DIR> 

在… \ 2014 07 20 \我们find一个文件夹和一个文件:

 www <DIR> 485,435,343 File20140720.pst 

我想做的事:

我想在复制之前将当前PST的大小和修改date与备份date文件夹中最近备份的date文件夹进行比较。 我不在乎检查WWW文件,他们改变了很多,但我很less编辑PST和500MB。

当目录名称随机变化时,我不知道如何find最近的文件夹。

我宁愿使用CMD / DOS,Python或PHP解决scheme而不是备份应用程序。

TDLR:如何比较一个文件与最新的相同types的文件,该文件在随机名称的子目录中具有不同的名称

测试这个:

 @echo off set "yes=" for %%a in ("c:\folder\master.pst") do ( for /r "d:\basefolder" %%b in (*.pst) do if "%%~ta"=="%%~tb" if "%%~za"=="%%~zb" set "yes=%%b" ) if defined yes echo the file already exists at "%yes%"