|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Распаковка нескольких архивов в текущую папку |
|
CMD/BAT - Распаковка нескольких архивов в текущую папку
|
Пользователь Сообщения: 52 |
всем привет.
есть: 1) установленный 7-zip 2) папка с подкаталогами и файлами, где то в подпапках лежат архивы (содержат только однотипные файлы типа *.tif) задача: 1) через скрипт распаковать архивы (лежащие где-то там в каталогах) БЕЗ создания отдельной папки с названием архива (аналог "извлечь в текущую папку") 2) доработать скрипт, чтобы распакованный файл из архива подменял тот что уже был распакован (это необходимо, так как есть каталоги, где лежат архивы, а есть где архивы и распакованные из него файлы) 3) после того, как имеем каталоги, с распакованными файлами и их архивами - удалить все архивы. вот этот скрипт распаковывает архивы с сохранением пути, НО создает новую папку @echo off for %%a in (zip, rar, 7z) do ( for /f "delims=" %%b In ('dir /b /s /a-d "H:\SHARE2\test\*.%%a" 2^>nul') do ( "C:\Program Files\7-Zip\7z.exe" x -t* "%%~b" -o"%%~dpnb" -y ) ) pause |
|
Отправлено: 18:34, 30-07-2018 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать в общем вот наколдовал, может кому надо.
Распаковывает все лежащие архивы из текущей папки (и подпапками) в собственный корень, с заменой файлов, если таковые были уже распакованы, а затем удаляет сами архивы (путь нужно указать). В итоге имеем структуру из папок и файлов без архивов. FOR /D /r %%F in ("*") DO ( pushd %CD% cd %%F FOR %%X in (*.rar, *.zip, *.7z) DO ( "C:\Program Files\7-zip\7z.exe" x "%%X" -y ) popd ) del /s "H:\SHARE2\test\zakaz\*.zip" del /s "H:\SHARE2\test\zakaz\*.rar" del /s "H:\SHARE2\test\zakaz\*.7z" pause собственно скрипт полезен, когда операторы или дизайнеры (ну работники) сами распаковывают архив с файлом, а потом забывают удалить или архив или сам файл. скрипт подчищает все это. P.S: команды на удаление, где пути прописаны кириллицей - пересохранить в кодировке 866 |
Последний раз редактировалось Skylear, 30-07-2018 в 20:26. Отправлено: 20:08, 30-07-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Архиватор ExtractNow делает это сам через настройки
|
Отправлено: 00:52, 12-06-2023 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Распаковка ВСЕХ архивов в папку с тем же именем | death7lord | Скриптовые языки администрирования Windows | 9 | 11-01-2020 15:21 | |
CMD/BAT - [решено] Поиск и распаковка архивов по маске | kirillius | Скриптовые языки администрирования Windows | 9 | 04-02-2015 08:37 | |
CMD/BAT - Скачивание BIK банков на текущую дату и распаковка файлов | nasedkin | Скриптовые языки администрирования Windows | 2 | 24-12-2014 14:05 | |
Разное - РАСПАКОВКА АРХИВОВ MZ (ОПК 3.19) | Vamp1re | Тест-форум | 0 | 13-12-2010 15:03 | |
распаковка больших архивов | greeka | Общий по FreeBSD | 7 | 19-07-2004 09:21 |
|