如何使用xDelta仅为修改过的文件创建补丁?

时间:2014-10-24 19:13:10

标签: cmd patch delta

例如,我有三个文件夹中的文件:

+-------------------+---------------------------------+-------------+
|     Folder1       |           Folder2               |   Patches   |
+-------------------+---------------------------------+-------------+
| - OldFile1.bin    |  - OldFile1.bin (Not Modified)  |             |
| - OldFile2.bin    |  - NewFile2.bin (Modified)      |             |
| - OldFile3.bin    |  - OldFile3.bin (Not Modified)  |             |
| - ........        |  - .........                    |             |
| - OldFileN.bin    |  - OldFileN.bin (Modified)      |             |
+-------------------+---------------------------------+-------------+

然后我想使用xDelta为所有修改过的文件创建补丁:

FOR %%P in (Folder1\*.bin) do (
call xdelta.exe -9 -e -s "Folder1\%%~nP" "Folder2\%%~nP" "Patches\%%~nP.xdelta"
)

在Patches文件夹中,我从Folder1获取0kb大小的所有文件,这些文件未被修改。怎么忽略它们?

在文档中没有任何关于哈希或其他文件检查的说法。

1 个答案:

答案 0 :(得分:2)

您可以在生成修补程序之前测试是否有任何修改

FOR %%P in ("Folder1\*.bin") do (
    fc /b "Folder1\%%~nxP" "Folder2\%%~nxP" >nul 2>&1 ||  xdelta.exe -9 -e -s "Folder1\%%~nxP" "Folder2\%%~nxP" "Patches\%%~nP.xdelta"
)