Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


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

Профиль | Сайт | Отправить 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