Como atualizar vários arquivos compactados com a linha de comando 7zip?

2

Eu preciso atualizar o arquivo "background.png" em centenas de arquivos .zip no mesmo diretório. Eu tentei o seguinte comando sem sucesso:

7z u -r "C:\Users\xxx\Desktop\testzip\*.zip" "C:\Users\xxx\Desktop\testzip\background.png"

Eu recebo o erro "não é possível abrir o arquivo". É possível fazer isso?

    
por suciocerdo 11.04.2018 / 15:10

1 resposta

0

Adicione um arquivo específico para cada arquivo zip recursivamente com 7-Zip

Use um loop Para / F e o Dir comando usando as opções /S /B /A-D para iterar cada arquivo zip um por um recursivamente a partir do diretório inicial para baixo e atualizar cada arquivo desta forma.

Observação: Com esse método, você omitirá e não usará o 7-Zip -r alterna com o parâmetro de atualização.

Linha de Comando

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"

Script em lote

Nota: Você pode definir o valor da variável SET Src= como sendo a pasta inicial do caminho completo que você deseja atualizar os arquivos zip dentro recursivamente. Você pode definir o valor da variável SET uFile= como o caminho completo do arquivo com o qual você está atualizando os arquivos zip; o arquivo de atualização.

@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%"
)

Mais recursos

  • Para / 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.
    

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~fI        - expands %I to a fully qualified path name
    
  • Dir

  • -u (Opções de atualização) alternar
por 11.04.2018 / 15:28