Wie aktualisiere ich mehrere komprimierte Dateien mit der 7zip-Befehlszeile?

Wie aktualisiere ich mehrere komprimierte Dateien mit der 7zip-Befehlszeile?

Ich muss die Datei „background.png“ in Hunderte von ZIP-Dateien im selben Verzeichnis aktualisieren. Ich habe den folgenden Befehl ohne Erfolg ausprobiert:

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

Ich erhalte die Fehlermeldung „Datei kann nicht geöffnet werden“. Kann ich das ändern?

Antwort1

Mit 7-Zip rekursiv eine bestimmte Datei zu jeder Zip-Datei hinzufügen

Benutze einenFür /FSchleife und die DirBefehl, bei dem die /S /B /A-DSchalter verwendet werden, um jede ZIP-Datei rekursiv nacheinander vom Startverzeichnis abwärts zu durchlaufen und auf diese Weise jede Archivdatei zu aktualisieren.

Notiz: Mit dieser Methode werden Sie die7-Zip -rSchalter mit dem Update-Parameter.


Befehlszeile

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"

Batch-Skript

Notiz: Sie können den Wert der SET Src=Variablen auf den vollständigen Pfad des Startordners setzen, in dem Sie die ZIP-Dateien rekursiv aktualisieren möchten. Sie können den SET uFile=Variablenwert auf den vollständigen Pfad der Datei setzen, mit der Sie die ZIP-Dateien aktualisieren; die Aktualisierungsdatei.

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

Weitere Ressourcen

  • Für /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.
    

    Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:

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

  • Schalter -u (Aktualisierungsoptionen)

verwandte Informationen