![]() |
Подскажите скрипт для пакетной распаковки, чт каталог создавался если файлов больше 1
Всем привет. Буду очень признателен, если подскажете пример кода для BAT
который распаковывал бы все архивы rar zip в каталоге и подкаталогах c:\temp , но каталог с именем архива создавался только если внутри архива больше 1 файла. средствами 7zip установленного по стандартному пути. Основная задача не перегружать главный каталог ненужными каталогами, а только теми, где файлов 2 и больше. А то лежит в каждом архиве еще файлик info и например скрин, и это все распаковывается в общую папку info, где эти файлы накапливаются с каждого архива. Сам использовал этот код с вашего сайта, - может на его основе можно сделать необходимое ? Код:
@ECHO ON |
alex_moscow, примеры тех и других архивов приведите. А то непонятно, каким образом связаны файл info и каталог info.
|
пример каталог внутри архивы и папки с архивами
temp\1\afile.zip (внутри архива 2 exe файла) temp\2\bfile.zip (внутри архива 1 exe файл) temp\cfile.zip (внутри архива 1 exe файл) результат должен быть : temp\1\afile\ (тут два файла) temp\2\bfile.exe (без каталога, т.к. в архиве файл один) temp\cfile.exe (без каталога, т.к. в архиве файл один) Т.е. необходимо правило файлов в архиве больше 1 - значит распаковываем их в свой каталог с именем архива Если файл в архиве один - значит его распаковываем в корень пути. папку не создавать. Ну и бонусом удалить все архивы после распаковки. |
Пробуйте. Пока без удаления. Обратите внимание, что используется 7za.exe, а не 7z.exe.
Скрытый текст
Код:
@echo off |
спасибо большое !!! отлично, все работает. удаление архивов надо делать в цикле или просто одной строкой в конце ?
|
Пробуйте:
Скрытый текст
Код:
@echo off Удаляться архивы должны только при успешном извлечении файлов. |
да, по поводу удаления согласен. если делать сразу в одном файле, то можно все испортить.
Проверил - все работает по отдельности. Огромное вам спасибо. Хотел привести большую базу с ZX speccy софтом в приличный вид. |
alex_moscow, обратите внимание на сторонние файловые менеджеры — Total Commander, Far Manager и т.п.
|
Вложений: 1
Еще вопрос, обнаружил , что ваш скрипт не захватывает файлы, находящиеся в каталогах с пробелами , русской раскладкой и если есть восклицательный знак в имени архива.
Это долго исправить или проще переименовать каталоги ? И rar файлы файлы все игнорируются, их не много, но выдает ошибку. 7za.exe видимо не умеет с таким синтаксисом. rar старой версии до 2010 года. |
Вложений: 1
Iska, Не очень понял, что такое 7za.exe? Насколько он официален? Можно ли его заменить на 7z.exe? У меня при такой замене Ваш скрипт не отрабатывает.
Мой вариант с 7-Zip 19.00 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Код:
@Echo Off |
Это консольная версия, с расширенными возможностями от авторов и создателей 7z
https://www.7-zip.org/download.html доступен на общей странице |
"""Не очень понял, что такое 7za.exe? Насколько он официален?"""
это консольная , расширенная версия 7z от официального разработчика. Доступна на основной странице download. UPD продублировал, думал то сообщение удалили из за ссылки. Можно подробнее, твой скрипт распаковывает и удаляет сразу ? понимает ли он rar и другие пробелы и символы (тут что привели выше не понимает воскл знаки)? |
Цитата:
Цитата:
Цитата:
Цитата:
Пробуйте: Скрытый текст
Код:
@echo off Цитата:
|
alex_moscow, Распаковывает, удаляет, если в архиве 1 файл, он получается без папки. Пробелы и ! ему ни по чём, испытан на архивах "*.zip" "*.rar" "*.7Z", единственное, пропишите свой путь для исходной папки и архиватора. Если в переменных скрипта будут кириллические символы - извольте сохранить скрипт в 866 кодировке, или, в принципе, можно доработать и для кодировки 1251.
Код:
@Echo Off |
to megaloman прямо сейчас тестирую ваш скрипт на 60 гиговой папке с 150 тыс архивами. Пока все ровно, единственно что не читабельно в процессе, но это не важно. Вам большое спасибо что поделились. Про 866 кодировку буду тестировать позже из notepada++
to Iska ваша версия теперь: rar распаковывает символы пробела и восклицательного знака понимает И я так понимаю сразу удаляет. я считаю вопрос решен, двумя скриптами, сохранил оба - огромЕнное вам спасибо. |
Цитата:
Сделал отображение обрабатываемых архивов, лог ошибок
Код:
@Echo Off |
Время: 23:44. |
Время: 23:44.
© OSzone.net 2001-