![Создание нескольких архивов из каталога без добавления имени корня каталога в архив](https://rvso.com/image/1558076/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85%20%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%BE%D0%B2%20%D0%B8%D0%B7%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%20%D0%B1%D0%B5%D0%B7%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8%20%D0%BA%D0%BE%D1%80%D0%BD%D1%8F%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%20%D0%B2%20%D0%B0%D1%80%D1%85%D0%B8%D0%B2.png)
Этот пакет отлично подходит для создания нескольких архивов в папке, но добавляет корневую папку в архив. Я бы хотел, чтобы он добавлял только файлы внутри корня. Вот код, который у меня есть:
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.
- Режиссёр
- Для
- команда (Добавить)