Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Распаковка нескольких архивов в текущую папку

Ответить
Настройки темы
CMD/BAT - Распаковка нескольких архивов в текущую папку

Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


всем привет.
есть:
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
Благодарности: 1

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Архиватор ExtractNow делает это сам через настройки

Отправлено: 00:52, 12-06-2023 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Распаковка нескольких архивов в текущую папку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход