2014-09-10 125 views
0

我有一个使用robocopy将数据文件从一个位置复制到另一个位置的批处理文件。由于目标驱动器上的容量问题,我们创建了另一个脚本,该脚本会为每个单独的数据文件创建zip文件,并从系统中删除原始数据文件。robocopy - 当目标目录中存在同名压缩文件时,不要复制源文件解压缩文件

如何修改批处理文件,以便在没有匹配的具有相同文件名的“.zip”文件时仅将新的'.dat'文件复制到目标文件?我需要处理的目标驱动器上的新“.DAT”的文件转换成“.ZIP”

这里的源文件和目标文件的例子之前:

sourceDir\file1.dat 
sourceDir\file2.dat 
sourceDir\file3.dat 
sourceDir\file4.dat 
sourceDir\file5.dat 
sourceDir\subDir1\file1.dat 
sourceDir\subDir1\file2.dat 
sourceDir\subDir3\file22.dat 

destDir\file2.zip 
destDir\file3.zip 
destDir\file5.zip 
destDir\subDir1\file1.zip 

只有

sourceDir\file1.dat 
sourceDir\file4.dat 
sourceDir\subDir1\file2.dat 
sourceDir\subDir3\file22.dat 

应该复制到destDir

谢谢!

埃里克

目前ROBOCOPY脚本的格式如下:

robocopy sourceDir destDir *.dat /S /COPY:DA /XO /MAXAGE:200 
+0

你不会能够用ROBOCOPY做到这一点。查看'FOR'命令(在命令提示符处输入'FOR /?')分别处理每个文件并确定是否需要复制。 – aphoria 2014-09-10 17:28:49

回答

0

循环遍历文件并单独复制他们,如果他们不存在:

for %%f in (%sourceDir%\*.dat) do (
    if not exist %destDir%\%%~nf.zip (
     // do something... 
    ) 
)