Как создать отдельные файлы 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'