比较两个Windows文件夹的差异,并将它们发布到一个新文件夹(超越比较)

时间:2014-11-11 05:06:42

标签: batch-file cmd beyondcompare beyondcompare3

我有以下情况

Folder 1
 -Folder a
      -File1.txt
      -Img1.png
 -Folder b
      -File2.txt
      -Img2.png

Folder 2
 -Folder a
      -File1.txt (File 1 modified)
      -Img1.png   (No change)
 -Folder b
      -File3.txt (New file added)
      -Img2.png  (no change)

基本上我希望输出文件夹包含以下文件(在原始结构中修改或添加,并保留结构)

OutputFolder
  -Folder a
       -File1.txt
  -Folder b 
       -File3.txt

我正在尝试使用Beyond Compare命令行来执行此操作,但我无法找到任何适合的参数,我不想手动更改所有文件(太多文件)以进行更改或使用SVN。我可以使用任何其他工具/脚本来实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

如果更改仅在“文件夹2” - 结构中,文件夹1将始终未被取消,我可以使用它:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=2,* DELIMS=  " %%A IN ('ROBOCOPY "Folder 2" "Folder 1" /MIR /XX /NDL /NJH /NJS /L') DO (
  SET tmpFolder=%%~dpB
  SET tmpFolder=!tmpFolder:Folder 2=OutputFolder!
  XCOPY "%%~B" "!tmpFolder!" /E /F /H /R /C
)
ENDLOCAL

Robocopy只会列出文件夹2和文件夹1之间的更改, for循环将文件复制到“outputfolder”,保留文件夹结构