Как создать отдельные файлы 7z из каждого выбранного каталога с помощью командной строки 7zip?

FOR %i IN (*.*) DO 7z.exe a "%~ni.7z" "%i"

Выполняет работу для каждого выбранного файла.

Однако у меня есть тонны каталогов (с файлами внутри них, очевидно), мне нужно упаковать.

Скажем, у меня есть d:\dir1, d:\dir2, d:\dir3, d:\dir4. Мне нужно 7zip, чтобы упаковать их таким образом:

e: \ dir1.7z, e: \ dir2.7z, e: \ dir3.7z, e: \ dir4.7z.

Как мне это сделать в командной строке 7zip?

2 ответа

Решение

Из командной строки вы можете использовать что-то вроде:

FOR /D %i IN (d:\dir*.) DO 7z.exe a "e:\%~ni.7z" "%i"

В командном файле вам понадобится:

FOR /D %%i IN (d:\dir*.) DO 7z.exe a "e:\%%~ni.7z" "%%i"

Кстати, вы можете найти помощь наFORвведите команду:

help for

в командной строке.

Обратите внимание, что 7-zip имеет отдельную версию командной строки, которая называется7za.exeвы, вероятно, хотели бы использовать вместо7z.exe, Это в отдельном.zipзагрузка файла под названием "Версия командной строки 7-Zip", которую вы можете найти на странице загрузки 7-Zip.

Если у вас есть тонны каталогов, использование подстановочных знаков может привести к некоторым системным ограничениям.

С помощью Cygwin или других инструментов Unix для Windows, таких как UnxUtils, вы можете использовать 'find'Unix команда следующим образом:

cd <source directory>
find . -mindepth 1 -maxdepth 1 -type d -exec 7za a /<destination directory>/{}.7z {} \;

'-mindepth'важно не возвращать текущий каталог 'find'

Другие вопросы по тегам