1

Я хотел узнать, если это возможно, как создать командную строку, чтобы сделать следующее - если каталог существует ZIP только содержимое в ZIP-файл. Если в каталоге есть подкаталоги, ZIP архивирует только содержимое в другой ZIP-файл.

Пример:

C:\Directory\sample.txt ZIP only sample.txt
C:\Directory\Directory1\sample1.txt ZIP only sample1.txt
C:\Directory\Directory1\Directory2\sample2.txt ZIP only sample2.txt

Таким образом, он создал бы 3 zip-файла в C:\Directory и подкаталогах.

Я не буду знать имя подкаталогов, поэтому я также могу назначить какую-то переменную, которая говорит, что если в C:\Directory есть каталоги или подкаталоги, то они начинаются с ZIP(ов)?

Спасибо,

Павел

3 ответа3

3

Поместите это в пакетный файл:

REM Usage: ZipFilesRecursively.bat "C:\My Files"
for /R "%~f1" %%F in (*) do 7z a "%%~dpFfiles.zip" "%%F"

Он сжимает все и только все файлы в архив files.zip созданный в каталоге C:\My Files и во всех его подкаталогах.

0

Это может помочь вам:

Dir /A:D /B - отображает все подкаталоги в каталоге

Dir /A:-D /B - отображает только файлы, содержащиеся в каталоге

Результат Dir /A:D /B может использоваться, чтобы проверить, содержит ли каталог подкаталог или нет.

0

Если вы не знаете список каталогов, вы можете просмотреть их с помощью команды FOR .

В командной строке Windows введите FOR /? получить информацию о его синтаксисе и использовании.

Вероятно, я бы использовал это, чтобы скопировать все файлы, которые вам нужны, в новый подкаталог и заархивировать его. Но используя файл справки, вы сможете понять, что вам нужно сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .