Extrahieren Sie mithilfe der 7z-Befehlszeile eine Datei aus einer Zip-Datei in eine andere Zip-Datei

Extrahieren Sie mithilfe der 7z-Befehlszeile eine Datei aus einer Zip-Datei in eine andere Zip-Datei

Ich kenne diesen Befehl:

7z e [archive.zip]-o[outputdir] [fileFilter]

Aber die Datei, die ich extrahieren möchte, befindet sich in einem Zip-Archiv innerhalb eines anderen Zip-Archivs, zum Beispiel:

Archivo1.zip\Carpeta1\Archivo2.zip 

Ich verwende diese Zeile, aber das Ergebnis ist, dass das Archiv nicht gefunden werden kann:

C:\Program Files\7-Zip\7z" x "C:\File 1.zip\Folder 1\File 2.zip" -O"C:\Output folder" "Imagen 1.tif"

Wie kann ich zum Arbeiten kommen?

Antwort1

Extrahieren Sie mithilfe der 7z-Befehlszeile eine Datei aus einer Zip-Datei in eine andere Zip-Datei

Unten finden Sie ein 7Zip CLI-Skript, mit dem ich dies vor einigen Jahren gemacht habe. Ich musste es seitdem ein oder zwei Mal verwenden und anpassen, um es nach Bedarf anzupassen.

Dadurch werden alle ZIP-Dateien (und deren Inhalte) innerhalb anderer ZIP-Dateien (und deren Inhalte) extrahiert, bis keine anderen ZIP-Dateien mehr zum Extrahieren übrig sind. Dabei wird im Wesentlichen rekursiv von der anfänglichen [Stamm-]ZIP-Übergeordnetendatei bis zur letzten untergeordneten ZIP-Datei und deren Inhalt durchgegangen; dabei werden Dateien aus allen ZIP- und Unter-ZIP-Dateien extrahiert.

Ich habe diese Methode aus irgendeinem lächerlichen Grund verwendet, um etwa vier Ebenen zu durchlaufen, wobei ein Unternehmen standardmäßig solche Daten sendete und diese nicht ändern konnte, ich aber dennoch in der Lage war, den Teil zu automatisieren, der mir dafür zugewiesen wurde.


CLI 7za Batch-Skript

Legen Sie die Quell-, Ziel- und Arbeitsverzeichnisvariablen nach Bedarf fest, kopieren Sie die Datei in den Quellverzeichnisordner und starten Sie sie. Andernfalls können Sie die Variablen *.zipmit ändern <ParentZipFileName>.zip.

:: This script uses the 7zip CLI to extract ZIP file(s) contents in one location to another
:: It then does an XCOPY of extracted ZIP files within the initial extacted files and copies those to a workdir
:: It then deletes ZIP files from source, and extracts the other ZIP files from workdir and loops until complete
:: NOTE that the 7za may need to have the environmental variable set accordinly

SET sourcedir=C:\Source
SET destdir=C:\Dest
SET workdir=C:\Workdir
IF NOT EXIST "%sourcedir%" MD "%sourcedir%"
IF NOT EXIST "destdir%" MD "%destdir%"
IF NOT EXIST "%workdir%" MD "%workdir%"

:unzip
7za -Y e "%sourcedir%" -o"%destdir%" -r
IF EXIST "%workdir%\*.zip" DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F "%destdir%\*.zip" "%workdir%\"
IF EXIST "%destdir%\*.zip" DEL /Q /F "%destdir%\*.zip"

DIR "%workdir%\*.zip" /A-D                         
ERRORLEVEL 1 GOTO done

:unzip2
7za -Y e "%workdir%" -o"%destdir%" -r
IF EXIST "%workdir%\*.zip" DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F "%destdir%\*.zip" "%workdir%\"
IF EXIST "%destdir%\*.zip" DEL /Q /F "%destdir%\*.zip"

DIR "%workdir%\*.zip" /A-D                         
IF ERRORLEVEL 1 GOTO done
GOTO unzip2

:done
GOTO EOF

Weitere Ressourcen

verwandte Informationen