Страница 1 из 1

Удаление файлов из архива .rar без временной распаковки

Добавлено: Вт фев 09, 2016 12:02
nooneknows
Написал батник (из папки назначения с рекурсией находит все архивы и распаковывает файлы из нужной папки в архиве. Архивы по 3гб, структура и имена папок в них одинаковая.

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

FOR /R %%I IN (*.rar) DO (
"%WinRAR%" x %%I -x! "users\folder\name" c:\output  )
Все отработало как надо.

Но, после этого, удаление файла из архива через totalcmd стало занимать очень много времени. Он его временно распаковывает (3гб), а раньше удалял на лету.

TC 8.52a 64bit
WinRar 5.21 64bit
W7 64bit

Добавлено: Вт фев 09, 2016 13:14
Avada
nooneknows
Заголовок не соответствует правилам форума — он слишком общий. (Пока исправил первую букву на заглавную.) У системы, архиватора и TC существуют конкретные версии и битность. Причинно-следственную связь между действием батника и особенностями удаления содержимого архива в TC, честно говоря, пока не уловил (тут лучше пусть выскажутся специалисты).
По переименованию темы и её нахождению в "Общих вопросах" приму решение дальше по ходу обсуждения (если оно будет).

Добавлено спустя 58 минут:

В дополнение к сказанному (сделанные поправки приняты к сведению):
1. При удалении файла из архива вообще-то должна также выполняться перепаковка средствами WinRAR. Происходит это отнюдь не моментально и с созданием временного файла средствами самого WinRAR. TC тут, строго говоря, вообще ни при чём.
2. На основании чего делался вывод о наличии/отсутствии временной распаковки полного архива?
3. Что означает "после этого"? Батник выполнен — удаление вплоть до перезагрузки системы идёт длительное время; затем система перезагружена, батник не выполнен — удаление идёт моментально? Или как?

Добавлено: Вт фев 09, 2016 14:47
nooneknows
Avada
Батник выполнился успешно, вызывая WinRar без участия TC. Тестировался на нескольких локальных машинах.
На следующий день заметил, что удаление файлов из больших архивов с помощью TC через WinRar стало занимать очень длительное время. До/после перезагрузки - не имеет значения.
Я думаю, что проблема в том, что сбилась конфигурация WinRar или настройки архиваторов в TC. TС выдавал ошибки и не мог найти архиватор. После чего я перепробовал множество вариантов rar.exe/winrar.exe в каталогах плагинов TC и самой папке с WinRar на локальной машине и на удаленных.
Также не исключена проблема в сетевом взаимодействии (обращение к WinRar локальному и удаленному), так как сетевой диск с архивами находится на удаленной машине. Пробовал создавать подобные большие архивы и запускать TC и WinRar, находящиеся на одном компьютере вместе с архивом - тоже очень медленно.
Еще попробовал создать архив (правда в 2 раза меньше) на компьютере, где не отрабатывался этот скрипт. Удаляет намного быстрее.

Добавлено: Вт фев 09, 2016 15:14
Avada
nooneknows
Батник проверять не буду. Подобных задач не имею, а конструировать что-то искусственно и искать приключений на свою голову не хочу.
Настройку архиваторов в TC легко проверить на соответствующей странице. Собственно, там достаточно убедиться в правильности путей к WinRAR.exe или rar.exе, которые могут находиться в принципе где угодно, лишь бы всё было указано правильно. (У меня, например, в TC любой битности используется 32-битная версия WinRAR по пути %Commander_path%\Utils\Arc\WinRAR\WinRAR.exe.) С последующей проверкой на упаковке произвольного файла (либо экзешник архиватора находится и операция выполняется, либо нет). В идеале это хорошо бы посмотреть на TC с минимальной конфигурацией. Но каким образом работа батника могла бы привести к изменению настроек TC, представить не могу.
Сбой конфигурации WinRAR? Это теоретически более возможно, но дистанционно представить, что там и как, не берусь. В конце концов, архиватор всегда можно переустановить (а заодно и обновить до свежей версии), не так ли?
Помимо удаления файлов "с помощью TC через WinRAR" есть, разумеется, возможность удалять их напрямую из интерфейса WinRAR, полностью минуя TC. Это проверялось? И вообще WinRAR.exe безотносительно к TC работает нормально?
И что там со вторым моим вопросом насчёт временной распаковки?