Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление одинаковых файлов в подкаталогах

Ответить
Настройки темы
CMD/BAT - [решено] Удаление одинаковых файлов в подкаталогах
njg njg вне форума

Новый участник


Сообщения: 46
Благодарности: 3

Профиль | Отправить PM | Цитировать


Изменения
Автор: njg
Дата: 17-11-2011
Решил почистить резервные копии от дубликатов. Задача в следующем:
Необходимо сравнить все *.rar-файлы в "сегодняшнем" каталоге с файлами во всех "старых" каталогах и удалить одинаковые по размеру (удалять только из папок со старыми резервными копиями, в текущей не трогать).
Резервные копии лежат в папках типа "_backup_2011-11-17" и создаются каждый день, кроме выходных.
Название "сегодняшнего" каталога было бы удобно передавать в скрипт в качестве параметра.

Нашел скрипт от megaloman, но не смог адаптировать его под перебор фалов в подкаталогах. Прошу помощи.

Код: Выделить весь код
@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%
)

Отправлено: 13:20, 17-11-2011

 
njg njg вне форума Автор темы

Новый участник


Сообщения: 46
Благодарности: 3

Профиль | Отправить PM | Цитировать


Осилил свою задумку. Посмотрите что получилось. Если есть ошибки или неточности, исправьте, пожалуйста.

Код: Выделить весь код
@echo off
SET FOLDERNAME=_BackUp_%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%

echo.
echo Удаление дубликатов:

For %%I In ("%FOLDERNAME%\*.rar") Do (
  call :deldub "%%~I"
)


echo.
pause
exit /b 0
rem ==========================================================================


rem ==========================================================================
:deldub
REM Процедура сравнения и удаления дубликатов
For /F "UseBackQ Delims=" %%I In (`Dir _BackUp_* /AD /B /ON 2^>nul`) Do (
  If /I %%~I NEQ %FOLDERNAME% (
    For %%J In ("%%~I\*.rar") Do (
      If /I "%%~nxJ" EQU "%~nx1" (
        If /I "%%~zJ" EQU "%~z1" (
          del /F "%%~J"
          Echo Удален %%~J 
        ) 
      )
    )
  )
)
exit /b 0
rem ==========================================================================

Отправлено: 04:29, 18-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление одинаковых файлов в подкаталогах

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление одинаковых файлов по размеру Arsenik77 Скриптовые языки администрирования Windows 27 08-08-2011 04:53
[решено] Удаление одинаковых файлов Tonny_Bennet Программирование в *nix 3 14-12-2010 16:44
CMD/BAT - [решено] Удаление одинаковых подпапок из родительской папки D_Master Скриптовые языки администрирования Windows 2 28-03-2009 15:08
удаление одинаковых папок в под папках clop1000 Хочу все знать 5 17-11-2007 00:51
Поиск одинаковых файлов Geo55 Программное обеспечение Windows 6 23-10-2004 10:01




 
Переход