alexxx2011
12-11-2017, 23:25
Мозги у меня уже не самые молодые и я далек от скриптов, поэтому прошу помощи.
Нужно решение на батниках и с применением архиватора 7z.
Вопрос №1 Как упаковать содержимое множества папок (упаковать не папки, а их содержимое) в архивы по имени папок, а папки удалить
Вопрос №2 Как прикрутить параметр архиватора 7z, чтобы командная строка не принимала его за имя файла
Теперь чуть подробнее.
Есть папки:
папка 001 в которой например папка ABC в которой есть файлы
папка 002 в которой просто лежат файлы
Пример:
001
ABC
111.txt
222.txt
002
333.txt
444.txt
Подобных папок как 001 и 002 может быть много.
Вот такая вот строка (подсмотрел в интернете) упаковывает все папки в zip-архивы
for /D %%i in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip %%i.zip %%i
Получаем архивы 001.zip и 002.zip, но архивируются именно папки 001 и 002, а мне надо в архиве получить содержимое этих папок,
то есть чтобы при входе в архив 001.zip была видна папка ABC, а при входе в 002.zip файлы 333.txt и 444.txt
Упакованные папки потом ещё удалить как-то надо.
Решение:
for /D %%a in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip -mx7 "%%~nxa.zip" "%%~dpnxa\*"&&rd /s /q "%%a"
Второй момент.
Никак не соображу. Мне надо в командную строчку вставить метод компрессии m=7 например.
Если вставляю вот так
for /D %%i in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip %%i.zip %%i m=7
то архиватор ругается, что файла m=7 нет и пакует папки с m=3 (по умолчанию).
Нужно решение на батниках и с применением архиватора 7z.
Вопрос №1 Как упаковать содержимое множества папок (упаковать не папки, а их содержимое) в архивы по имени папок, а папки удалить
Вопрос №2 Как прикрутить параметр архиватора 7z, чтобы командная строка не принимала его за имя файла
Теперь чуть подробнее.
Есть папки:
папка 001 в которой например папка ABC в которой есть файлы
папка 002 в которой просто лежат файлы
Пример:
001
ABC
111.txt
222.txt
002
333.txt
444.txt
Подобных папок как 001 и 002 может быть много.
Вот такая вот строка (подсмотрел в интернете) упаковывает все папки в zip-архивы
for /D %%i in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip %%i.zip %%i
Получаем архивы 001.zip и 002.zip, но архивируются именно папки 001 и 002, а мне надо в архиве получить содержимое этих папок,
то есть чтобы при входе в архив 001.zip была видна папка ABC, а при входе в 002.zip файлы 333.txt и 444.txt
Упакованные папки потом ещё удалить как-то надо.
Решение:
for /D %%a in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip -mx7 "%%~nxa.zip" "%%~dpnxa\*"&&rd /s /q "%%a"
Второй момент.
Никак не соображу. Мне надо в командную строчку вставить метод компрессии m=7 например.
Если вставляю вот так
for /D %%i in (*) do "c:\Program Files\7-Zip\7z.exe" a -tzip %%i.zip %%i m=7
то архиватор ругается, что файла m=7 нет и пакует папки с m=3 (по умолчанию).