Вам просто нужно использовать только цикл for, опуская параметр /d
и он будет работать так же, как вы описываете создание файла (ов) архива 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"
Командное гнездо
Примечание. При этом файлы будут добавляться только из каталогов, расположенных под каталогом, в котором находится пакетный файл, в 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
Дополнительные ресурсы
- Для /F
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.
- Dir
- За
- команда (Добавить)