
Этот пакет отлично подходит для создания нескольких архивов в папке, но добавляет корневую папку в архив. Я бы хотел, чтобы он добавлял только файлы внутри корня. Вот код, который у меня есть:
for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"
решение1
Вам просто нужно использовать всего лишьдляцикл, опускающий /d
параметр, и он будет работать так же, как вы описываете, создавая файл(ы) zip-архива и не содержащий его родительскую папку.
Команды
Примечание: Это добавит файл zip-архива для каждого файла в каталоге, и в zip-архиве будет находиться только этот файл.
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%~X.zip" "%%~X"
Примечание: Это добавит все файлы только из указанного каталога в один указанный вами zip-файл.
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "<MyZipFileName>.zip" "%%~X"
Команда Nest Loop
Примечание: Это позволит добавить файлы только из каталогов, находящихся ниже каталога, в котором находится пакетный файл, в zip-файл, соответствующий имени каталога.
@ECHO ON FOR /F "TOKENS=*" %%A in ('DIR /S /B /AD "*"') DO ( FOR %%B IN (*) DO ( "C:\Program Files\7-Zip\7z.exe" a "%%~fA.zip" "%%~fA\*") ) EXIT
Дополнительные ресурсы
- Для /Ф
FOR /?
tokens=x,y,m-n - specifies which tokens from each line are to be passed to the for body for each iteration. This will cause additional variable names to be allocated. The m-n form is a range, specifying the mth through the nth tokens. If the last character in the tokens= string is an asterisk, then an additional variable is allocated and receives the remaining text on the line after the last token parsed.
- Режиссёр
- Для
- команда (Добавить)