/ / Einfaches Konvertieren aller Zip-Archive in 7z-Archive

Konvertieren Sie ganz einfach alle Ihre Zip-Archive in 7z-Archive

Das zip-Format ist der Standard für DateienKomprimierung, jedoch bevorzugen viele Poweruser- und Systemadministratortypen das 7z-Format, da es deutlich bessere Komprimierungsraten bietet. Das Zip-Format bietet einige Vorteile, wie z. B. Geschwindigkeit (im Vergleich zu anderen Komprimierungsformaten) und Anwendungsunterstützung.

Um das Beste aus beiden Welten herauszuholen, haben wir ein Skript erstellt, das Ihre ZIP-Dateien mit einem einzigen Befehl in 7Z-Dateien konvertiert. Diesen Vorgang bezeichnen wir als „Tiefenarchivierung“.

Praktische Verwendungen

Warum brauchen Sie dieses Skript, wenn Sie zunächst nur 7z-Archive erstellen können? Hier sind ein paar Gründe:

  1. Bestimmte Anwendungen erstellen möglicherweise nur Archive im Zip-Format.
  2. Da die Zip-Komprimierung schneller ist als die 7z-Komprimierung, möchten Sie möglicherweise schnell eine Zip-Datei erstellen und später „tief komprimieren“.

Betrachten Sie dieses Szenario:

Sie betreiben eine FTP-Site, auf der Kunden Daten hochladenan dich im zip format. Ihre Benutzer laden die Daten dann herunter und verwenden sie nach Bedarf. Sie möchten diese Dateien jedoch für eine Weile aufbewahren, nur für den Fall, dass Sie sie erneut benötigen (in diesem Fall sind Sie ein Held, weil Sie sie sofort verfügbar haben). Um etwas Platz zu sparen, können Sie die Zip-Archive in das 7z-Format konvertieren und sie verstauen.

Alternativ können Sie vom Kunden hochgeladene Daten aus dem obigen Szenario durch gesicherte Benutzerdaten (oder was auch immer Sie sich sonst noch vorstellen können) ersetzen. Sie sehen, dass es dafür viele praktische Anwendungen gibt.

Das Drehbuch

@ECHO OFF
ECHO Deep Archive
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.
REM Takes a Zip file and recompresses it as 7z archive.
REM Script process:
REM    1. Decompress the existing archive.
REM    2. Compress the extracted files in 7z format.
REM    3. (optional) Validate the new 7z file.
REM    4. (optional) Delete the source archive.
REM
REM Usage:
REM DeepArchive ZipFile
REM
REM Requirements:
REM    The 7-Zip command line tool (7za.exe) is in a location set in the PATH variable.
REM
REM Additional Notes:
REM This script processes a single zip archive.
REM To process all zip archives in a folder, use the ForFiles command from the command line:
REM    FORFILES /P "pathtozipfiles" /M *.zip /C "cmd /c DeepArchive @path"
REM
REM To run the archive compression/decompression as low priority background processes
REM add this in front of the 7ZA commands (DO NOT add this in front of the validation 7ZA command):
REM    START /BelowNormal /Wait
REM Adding the above command will use a new window to perform these operations.
SETLOCAL EnableExtensions EnableDelayedExpansion
REM Should the deep archive file be validated? (1=yes, 0=no)
SET Validate=0
REM Compression level: 1,3,5,7,9 (higher=slower but more compression)
SET CompressLevel=5
REM Delete source zip file on success? (1=yes, 0=no)
SET DeleteSourceOnSuccess=1
REM ---- Do not modify anything below this line ----
SET ArchiveFile=%1
SET DeepFile=%ArchiveFile:.zip=.7z%
SET tmpPath=%TEMP%%~nx1
SET tmpPathZip="%tmpPath%*"
SET tmpPath="%tmpPath%"
SET tmpFile="%TEMP%tmpDeepArchive.txt"
IF NOT EXIST %tmpPath% (
MKDIR %tmpPath%
) ELSE (
RMDIR /S /Q %tmpPath%
)
ECHO Extracting archive: %ArchiveFile%
7ZA x %ArchiveFile% -o%tmpPath%
ECHO.
ECHO Compressing archive: %DeepFile%
7ZA a -t7z -mx%CompressLevel% %DeepFile% %tmpPathZip%
ECHO.
IF {%Validate%}=={1} (
ECHO Validating archive: %DeepFile%
7ZA t %DeepFile% | FIND /C "Everything is Ok" > %tmpFile%
SET /P IsValid=< %tmpFile%
IF !IsValid!==0 (
ECHO Validation failed!
DEL /F /Q %DeepFile%
ECHO.
GOTO Fail
) ELSE (
ECHO Validation passed.
)
ECHO.
)
GOTO Success
:Success
IF {%DeleteSourceOnSuccess%}=={1} DEL /F /Q %ArchiveFile%
ECHO Success
GOTO End
:Fail
ECHO Failed
GOTO End
:End
IF EXIST %tmpFile% DEL /F /Q %tmpFile%
IF EXIST %tmpPath% RMDIR /S /Q %tmpPath%
ENDLOCAL

Links

Laden Sie DeepArchive Script von SysadminGeek.com herunter

Laden Sie das 7-Zip-Befehlszeilentool herunter