Использование 7zip для извлечения нескольких zip-архивов в нескольких папках

Использование 7zip для извлечения нескольких zip-архивов в нескольких папках

У меня есть большое дерево папок. Допустим, есть папки с именами A, B, C и т. д. по Z. Внутри каждой папки находится несколько zip-файлов.

Я могу выбрать все zip-файлы в папке, щелкнуть правой кнопкой мыши, выбрать 7zip и выбрать Extract to "*", и это отлично работает. Например, если я сделаю это с zip-файлами в папке A, A будет содержать папку для каждого zip-файла с содержимым zip-файла внутри.

Я хочу выполнить поиск всех zip-файлов во ВСЕХ папках (AZ) и выполнить эту операцию одновременно, так чтобы в каждой из папок (AZ) появились папки для всех содержащихся в них zip-файлов.

На самом деле 7zip извлекает все в первую попавшуюся папку (например, A).

Кто-нибудь знает, как это сделать?

решение1

Вы можете использовать командную строку Windows. Просто нажмите на логотип Windows, введите cmdи нажмите ENTER. Затем перейдите в каталог, содержащий подкаталоги с вашими zip-файлами, введя cd c:\my\example\dirи ENTER, если он находится на другом диске, введите eg i:и еще раз, ENTERчтобы переключиться на этот диск. Теперь правильный путь будет показан перед курсором. Затем введите

for /F "usebackq" %f in (`dir /b/a:d`) do @echo %f

и ENTER. возвращает одну строку на каталог. Для каждой из этих строк выполняется dir /b/a:dкоманда позади . просто выведет найденные имена на экран, так что вы можете безопасно контролировать, что будет выполнено, если вы удалите . В вашем случае вам понадобится что-то вродеdo@echo %f@echo

for /F "usebackq" %f in (`dir /b/a:d`) do C:\APPS\7-Zip\7z.exe x .\%f\*.zip -o%f

который для каждого подкаталога вызовет исполняемый файл командной строки 7zip (вам нужно будет настроить путь от C:\APPS\7-Zip\вашей системы) и извлечет все файлы zip, включая их полный путь, в текущий подкаталог. Более подробную информацию о синтаксисе 7zip можно найти наhttps://www.dotnetperls.com/7-zip-examples

Если вы делаете это снова и снова, вы можете создать простое.летучая мышь/.cmd с вышеупомянутой командой, но вам, скорее всего, придется заменить % на %%, чтобы это заработало.

решение2

Я добился того, что все заработало так, как я хотел. Правильная команда:

for /F "tokens=*" %%g in ('dir /b/a:d') do "C:\Program Files\7-Zip\7z.exe" x ".\%%g\*.zip" -o"%g\*" -aos

решение3

Если вы используете Windows, перейдите в корневую папку с папками A, B, C и D, затем выполните поиск *.zipили *.rarв поиске Windows выберите/выделите все zip-файлы и используйте 7-zip, чтобы сделать все, что вам нужно. Должно работать также отлично с dolphin(linux).

Связанный контент