Добавьте один конкретный файл в каждый zip-файл рекурсивно с 7-Zip
Используйте цикл For /F и команду Dir с помощью переключателей /S /B /A-D
чтобы рекурсивно перебирать каждый zip-файл по одному из начального каталога и обновлять каждый архивный файл таким образом.
Примечание. С помощью этого метода вы пропустите и не будете использовать ключ 7-Zip -r
с параметром обновления.
Командная строка
FOR /F "TOKENS=*" %A in ('DIR /S /B /A-D "C:\Users\xxx\Desktop\testzip\*.zip"') DO 7z u "%~fA" "C:\Users\xxx\Desktop\testzip\background.png"
Пакетный скрипт
Примечание. Вы можете установить значение переменной SET Src=
равным значению начальной папки полного пути, в которой вы хотите рекурсивно обновлять zip-файлы.Вы можете установить значение SET uFile=
variable как полный путь к файлу, которым вы обновляете ZIP-файлы; файл обновления.
@ECHO ON
SET Src=C:\Users\xxx\Desktop\testzip
SET uFile=C:\Users\xxx\Desktop\testzip\background.png
FOR /F "TOKENS=*" %%A in ('DIR /S /B /A-D "%Src%\*.zip"') DO (
7z u "%%~fA" "%uFile%"
)
Дополнительные ресурсы
- Для /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.
Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:
%~fI - expands %I to a fully qualified path name
Dir
- -u (Обновить параметры) переключатель