robocopy - 当目标目录中存在同名的zip文件时,不要复制源未压缩文件

时间:2014-09-10 16:35:00

标签: batch-file robocopy

我有一个批处理文件,它使用robocopy将数据文件从一个位置复制到另一个位置。由于目标驱动器上的容量问题,我们创建了另一个脚本,该脚本生成每个单独数据文件的zip文件,并从系统中删除原始数据文件。

如果没有匹配的'.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

1 个答案:

答案 0 :(得分:0)

循环浏览文件并单独复制(如果它们不存在):

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