Batch file 比较两个windows文件夹的差异,并将其发布到新文件夹(无法比较)
我有下面的场景Batch file 比较两个windows文件夹的差异,并将其发布到新文件夹(无法比较),batch-file,cmd,beyondcompare,beyondcompare3,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.pn
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)
基本上,我希望输出文件夹包含以下文件(在原始结构中修改或添加,保留结构)
我正在尝试使用Beyond Compare命令行来执行此操作,但我找不到任何适合的参数,我不想手动循环所有文件(太多文件)以进行更改或使用SVN。我可以使用任何其他工具/脚本来实现这一点吗 如果更改仅在“文件夹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”,保持文件夹结构谢谢!是的,关于文件夹的假设是正确的,但它似乎不适合我。有(错误)消息吗?你原来的折叠结构怎么样?啊。。。哈哈哈。。。我忘了从
XCOPY
中删除/L
-Param。所以XCOPY
将只列出atm,而不复制xD对不起。我从原始帖子中删除了它。仍然没有(错误)-消息或您的原始文件夹结构。。。你的确切代码怎么样?不,和上面一样的文件夹结构,我会调试邮件然后回来!谢谢
@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