njg
17-11-2011, 13:20
Решил почистить резервные копии от дубликатов. Задача в следующем:
Необходимо сравнить все *.rar-файлы в "сегодняшнем" каталоге с файлами во всех "старых" каталогах и удалить одинаковые по размеру (удалять только из папок со старыми резервными копиями, в текущей не трогать).
Резервные копии лежат в папках типа "_backup_2011-11-17" и создаются каждый день, кроме выходных.
Название "сегодняшнего" каталога было бы удобно передавать в скрипт в качестве параметра.
Нашел скрипт от megaloman (http://forum.oszone.net/post-1714623-8.html), но не смог адаптировать его под перебор фалов в подкаталогах. Прошу помощи.
@Echo Off
Set Otkuda=D:\Delete
Set S1=-1
FOR /F "usebackq delims=" %%f IN (`Dir /B /A:-D /O:SN "%Otkuda%\"`) DO Call :DelSize "%Otkuda%\%%f"
GoTo :Eof
:DelSize
Set S2=%~z1
If %S1% NEQ %S2% (
Set S1=%S2%
Set N1=%1
) Else (
Del %1
If Exist %N1% Del %N1%
)
Необходимо сравнить все *.rar-файлы в "сегодняшнем" каталоге с файлами во всех "старых" каталогах и удалить одинаковые по размеру (удалять только из папок со старыми резервными копиями, в текущей не трогать).
Резервные копии лежат в папках типа "_backup_2011-11-17" и создаются каждый день, кроме выходных.
Название "сегодняшнего" каталога было бы удобно передавать в скрипт в качестве параметра.
Нашел скрипт от megaloman (http://forum.oszone.net/post-1714623-8.html), но не смог адаптировать его под перебор фалов в подкаталогах. Прошу помощи.
@Echo Off
Set Otkuda=D:\Delete
Set S1=-1
FOR /F "usebackq delims=" %%f IN (`Dir /B /A:-D /O:SN "%Otkuda%\"`) DO Call :DelSize "%Otkuda%\%%f"
GoTo :Eof
:DelSize
Set S2=%~z1
If %S1% NEQ %S2% (
Set S1=%S2%
Set N1=%1
) Else (
Del %1
If Exist %N1% Del %N1%
)