|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Заархивировать каждый файл в отдельный архив |
|
CMD/BAT - [решено] Заархивировать каждый файл в отдельный архив
|
Пользователь Сообщения: 64 |
Профиль | Отправить PM | Цитировать Здравствуйте. Подскажите пожалуйста каким образом можно заархивировать все файлы в текущей папке в отдельные архивы?
Например папка Documents содержит 5 файлов и нужно получить 5 архивов.Формат архивов и архиватор роли не играют, имя архива должно повторять имя файла. Была уже Похожая тема но мне нужен Bat'ник. |
|
Отправлено: 17:59, 11-12-2010 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
получилось Set "BoxIn=c:\Отечественная фантастика и фэнтези" пишет: "для продолжения нажмите любую клавишу" Жму и... ничего не происходит, просто закрывается окно командной строки. Что делаю не так? P.S. Путь к WinRar совпадает. |
|
Отправлено: 15:23, 26-03-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Цитата Svetochh:
|
|
------- Отправлено: 15:39, 26-03-2018 | #12 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Если всё же сохранять батник в 1251 кодировке
@Echo Off cls chcp 1251 >nul Set "BoxIn=Z:\Отечественная фантастика и фэнтези" Set "Maska=*.fb2" Set "BoxArc=Z:\Архив книг" Md "%BoxArc%" 2>nul Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" a -ep -ibck -afzip -df" FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Maska%" /b /s /a:-d`) DO ( Echo %%f %Arc% "%BoxArc%\%%~nxf.zip" "%%f" ) Pause Если заархивированный файл сохранять вместо оригинала в той же папке
|
------- Последний раз редактировалось megaloman, 27-03-2018 в 18:34. Отправлено: 18:24, 27-03-2018 | #13 |
Новый участник Сообщения: 1
|
Профиль | Сайт | Отправить PM | Цитировать вот жеж програмысты %)
столкнулся с аналогичной необходимостью - заархивировать пакетно каждый файл в свой архив с тем же именем. как порядочный чел спросил у поисковика, на 2х языках ёпта. одни заумные неработающие решения кругом в 50+ строк %) пришлось самому перелопатить мануалы. не благодарите. 1 строка %)) for /r целевая род директория %i in (маска добавляемых файлов) do 7z a "%~dpi%~ni.7z" -mx9 -sdel "%i" где все, что кириллицей заменить на свои значения каталога и маски в формате, например, c:\work и *.psd соответственно (for - запускает цикл с /r рекурсией по подкаталогам целевой род директории, в котором %i переменная при каждом вхождении файла заданной маски ровняется его имени, включая полный путь к нему. do при каждом срабатывании цикла выполняет команду 7z (переменные среды выполнения настраиваются в винде или же просто вместо 7z прописать путь к исполняемому файлу архиватора, в моем случае 7-zip) с параметром a(учтите, что при работе с каким либо другим архиватором могут быть и другие параметры) - архивировать в архив "%~dpi%~ni.7z", где %~dpi - часть перемененной %i, что содержит только путь к источнику; %~ni - часть переменной %i, что содержит только имя источника без расширения. ну и сервисные переменные в моем конкретном случае - -mx9 -степень сжатия и -sdel -удалить источник. и в-с-ё. больше ничего не нужно, никаких 50+ строк с задаваниями переменных и т.п. чепухи %)) это команда для командной строки. если нужно бат, то то же самое, только кругом двойные %%, где они попадаются |
Отправлено: 20:12, 07-01-2022 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Alchiira.Moth@vk:
Цитата Alchiira.Moth@vk:
|
||
Отправлено: 23:54, 07-01-2022 | #15 |
fascinating rhythm Сообщения: 6493
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 11:31, 08-01-2022 | #16 |
Пользователь Сообщения: 97
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 09:38, 29-03-2023 | #17 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Прошу помощи с батником для архивации каждой папки в отдельный архив с помощью 7zip. Архивы должны иметь то же имя, что и папки
Использую следующее: for /d %%A in (D:\*) do D:\7-Zip\7z.exe a -tzip -mx=5 -r -pPASS "F:\backup\D\%DATE%_%%~nxA.zip" "%%A" -xr@exclude.txt И еще, что прописать, чтобы в архиве было сразу содержимое архивируемой папки, а не папка и только в ней содержимое? |
Отправлено: 16:41, 18-11-2023 | #18 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Где-то я это видел
@Echo Off &cls Set "BoxIn=A:" Set "BoxArc=Z:\backup\D" Set "Exclude=%~dpn0.exl" Set Arc="C:\Program Files\7-Zip\7z.exe" a -tzip -mx=5 -r -ppass If Not Exist "%BoxIn%\" (Echo !!! Folder "%BoxIn%" not found &Pause &Exit /B 2) For /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D "%BoxIn%\" ^| FindStr /I /L /V /G:"%Exclude%"`) Do ( >nul %Arc% "%BoxArc%\%DATE%_%%~nxd.zip" "%BoxIn%\%%d" ) pause Exit /B Цитата a.k.a. Rasputin:
|
|
------- Последний раз редактировалось megaloman, 18-11-2023 в 16:53. Отправлено: 16:46, 18-11-2023 | #19 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:54, 18-11-2023 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование строк в отдельный файл по условию | Seryoga204 | Скриптовые языки администрирования Windows | 26 | 24-08-2016 23:33 | |
CMD/BAT - [решено] Поиск строк с указанным словом и копирование их в отдельный файл | Maartimus | Скриптовые языки администрирования Windows | 2 | 13-07-2010 20:25 | |
Общее - [решено] Экспорт издания в отдельный WIM-файл | САШOК | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 7 | 03-06-2009 01:41 | |
Вывод размера папки в отдельный файл скриптом | Whiteee | Microsoft Windows NT/2000/2003 | 1 | 16-07-2008 14:06 | |
[решено] Архивация каждого файла в отдельный архив | vadimiron | Общий по Linux | 10 | 15-08-2007 14:24 |
|