【问题标题】:Compare two windows folders for differences and post them out to a new folder(Beyond compare)比较两个 Windows 文件夹的差异并将它们发布到一个新文件夹(超越比较)
【发布时间】:2014-11-11 05:06:41
【问题描述】:

我有以下场景

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。我可以使用任何其他工具/脚本来实现这一目标吗?

【问题讨论】:

    标签: batch-file cmd beyondcompare beyondcompare3


    【解决方案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 循环会将文件复制到“输出文件夹”,保留文件夹结构

    【讨论】:

    • 谢谢!是的,关于文件夹的假设是正确的,但它似乎对我不起作用。
    • 任何(错误)消息?你原来的文件夹结构怎么样?
    • 啊……哈哈哈……我忘了从XCOPY 中删除/L-Param。所以XCOPY 只会列出 atm,但不会复制 xD 抱歉。我从原始帖子中删除了它。
    • 仍然没有(错误)消息或您的原始文件夹结构...您的确切代码如何?
    • 不,与上面相同的文件夹结构,错误调试消息并返回!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多