Отсортировка битых архивов RAR в отдельную папку

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
SLAVCHIKS
Сообщения: 4
Зарегистрирован: Пт апр 25, 2014 12:34

Отсортировка битых архивов RAR в отдельную папку

Сообщение SLAVCHIKS »

Стоит следующая задача - нужен скрипт, чтобы найти в папке с несколькими тысячами архивов RAR битые (поврежденные) архивы и автоматически переместить их в папку - например создав в текущей папку BADRAR.

Я сделал скрипт, который выполняет такую задачу, но в нем есть неприятные нюансы - Нужно проверяемые файлы копировать в какую нибудь папку, которая первая по вложенности с корня диска (во вложенных дальше одной не срабатывает), скопировать в эту папку сам скрипт, файл 7z.exe и пустую папку Bad.
вот сам этот скрипт проверки и перемещения битых файлов RAR

Код: Выделить всё

FOR /R %%A IN (*.rar) DO (
7z t "%%A" | FIND "Everything is Ok" || MOVE "%%A" %CD%\BAD\
)
В идеале хотелось бы иметь кнопку, которая автоматом работала бы в активной директории в ТС, автоматом создавала в ней папку BADRAR и перемещала туда найденные битые файлы.
Надеюсь на помощь сообщества, думаю многим пригодится такая фича.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Код: Выделить всё

TOTALCMD#BAR#DATA
%comspec% /c for /f "delims=" %# in ('dir /b/s *.7z *.rar *.zip ^|findstr /vc:\BadArcs\') do
(7z.exe t "%%#" ||(md "%%~dp#\BadArcs\" 2>nul &move /y "%%#" "%%~dp#\BadArcs\"))
TotalCmd.dll,4
Сортировать битые архивы

1
-1
SLAVCHIKS
Сообщения: 4
Зарегистрирован: Пт апр 25, 2014 12:34

Сообщение SLAVCHIKS »

Tol!k писал(а):

Код: Выделить всё

TOTALCMD#BAR#DATA
%comspec% /c for /f "delims=" %# in ('dir /b/s *.7z *.rar *.zip ^|findstr /vc:\BadArcs\') do
(7z.exe t "%%#" ||(md "%%~dp#\BadArcs" 2>nul &move /y "%%#" "%%~dp#\BadArcs"))
TotalCmd.dll,4
Сортировать битые архивы

1
-1
Это как cmd запускать, или как правильно в панель прикрутить?
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

http://forum.wincmd.ru/viewpost.php?p=7870
— чтобы забрать кнопку, скопируйте содержимое кода нужной кнопки, правой кнопкой мыши щелкните на нужном месте панели управления (кнопок) тотала и выберите "Вставить";

Если, по каким то причинам, значок вставленной кнопки не отображается или отбражается не должным образом, необходимо обновить кнопку, для этого щелкните по вставленной пустой кнопке правой кнопкой мыши, выберите "Изменить", после чего нажмите "OK"
SLAVCHIKS
Сообщения: 4
Зарегистрирован: Пт апр 25, 2014 12:34

Сообщение SLAVCHIKS »

сделал кнопку, попробовал на одной папке - мгновенно переместило кучу архивов в папку битых без всяких проверок
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

полный путь к 7z.exe пропиши в кнопку или в %path%
Ответить