2014-10-24 3 views
1

Например у меня есть файлы в трех папках:Как создать патч только для измененных файлов с помощью xDelta?

+-------------------+---------------------------------+-------------+ 
|  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" 
) 

В папке Патчи я получаю все файлы из Folder1 с размером 0Kb, который не был изменен. Как игнорировать их?

В документах ничего не говорится о хеше или другой проверке файла.

ответ

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" 
) 
+0

Thx. Очень полезно. Каждый день новое открытие :) –

Смежные вопросы