19Aug

Enkelt konvertera alla dina zip-arkiv till 7z-arkiv

Zipformatet är standard för filkomprimering, men många typer av strömanvändare och systemadministratörer föredrar att använda 7z-formatet eftersom det ger signifikant bättre komprimeringsförhållanden. Zipformatet har några saker som går till det, till exempel hastighet( i förhållande till andra komprimeringsformat) och applikationssupport.

För att få det bästa av båda världarna har vi skapat ett manus som kommer att konvertera dina zip-filer till 7z-filer med ett enda kommando, en process som vi kallar "djup arkivering".

Praktiska användningsområden

Så varför skulle du behöva det här skriptet när du bara kan skapa 7z-arkiv till att börja med? Här är några orsaker:

  1. Vissa program kan bara skapa zip-formatarkiv.
  2. Eftersom zip-komprimering är snabbare än 7z-komprimering, kan du snabbt skapa en zip-fil och sedan "djupt komprimera" den senare.

Tänk på detta scenario:

Du kör en FTP-plats där kunder laddar upp data till dig i zip-format. Dina användare ladda ner och använda data efter behov men du vill behålla dessa filer en stund bara om du behöver dina användare igen( i så fall är du hjälte för att de är tillgängliga).För att spara lite utrymme kan du konvertera zip-arkiven till 7z-format och stash dem bort.

Alternativt, byt ut kunduppladdade data från ovanstående scenario med säkerhetskopierad användardata( eller vad du än kan tänka dig) och du kan se att det finns många praktiska tillämpningar för detta.

Skriptet

@ECHO AV ECHO Deep Archive ECHO Skrivet av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKO.REM Tar en Zip-fil och komprimerar den som 7z-arkiv. REM Script-processen: REM 1. Dekomprimera det befintliga arkivet. REM 2. Komprimera de extraherade filerna i 7z-format. REM 3.( valfritt) Bekräfta den nya 7z-filen. REM 4.( valfritt) Ta bort källarkivet. REM REM-användning: REM DeepArchive ZipFile REM REM Krav: REM Kommandoradsverktyget 7-Zip( 7za.exe) är placerat i PATH-variabeln. REM REM Ytterligare anmärkningar: REM Detta skript bearbetar ett enda zip-arkiv. REM För att bearbeta alla zip-arkiv i en mapp, använd kommandot ForFiles från kommandoraden: REM FORFILES / P "pathtozipfiles" / M *. zip / C "cmd / c DeepArchive @ path" REM REM För att köra arkivkomprimering / dekompressionREM START / BelowNormal / Wait REM Lägg till ovanstående kommando kommer att använda ett nytt fönster för att utföra dessa operationer. REM START / BelowNormal / Wait REM Lägg till ovanstående kommando kommer att använda ett nytt fönster för att utföra dessa operationer. SETLOCAL EnableExtensions EnableDelayedExpansion REM Om den djupa arkivfilen valideras?(1 = ja, 0 = nej) SET Validate = 0 REM Kompressionsnivå: 1,3,5,7,9( högre = långsammare men mer komprimering) SET CompressLevel = 5 REM Ta bort käll zip-filen på framgång?(1 = ja, 0 = nej) SET DeleteSourceOnSuccess = 1 REM ---- Ändra inte något under denna rad ---- SET ArchiveFile =% 1 SET DeepFile =% ArchiveFile:. zip =. 7z% SET tmpPath =%TEMP %% ~ nx1 SET tmpPathZip = "% tmpPath% *" SET tmpPath = "% tmpPath%" SET tmpFile = "% TEMP% tmpDeepArchive.txt" OM INTE EXISTER% tmpPath%( MKDIR% tmpPath%) ELSE( RMDIR / S/ Q% tmpPath%) ECHO Utdragningsarkiv:% ArchiveFile% 7ZA x% ArchiveFile% -o% tmpPath% ECHO.ECHO Komprimera arkiv:% DeepFile% 7ZA a -t7z -mx% CompressLevel%% DeepFile%% tmpPathZip% ECHO.IF{ % Validate%} =={ 1}( ECHO Validerande arkiv:% DeepFile% 7ZA t% DeepFile% | FIND / C "Allt är Ok" & gt;% tmpFile% SET / P IsValid = & lt;% tmpFile% IF!(ECHO-validering godkänd.) ECHO.) GOTO Framgång: Framgång IF{ % DeleteSourceOnSuccess%} =={ 1} DEL /F / Q% ArkivFile% ECHO Framgång GOTO Slut: Fel ECHO Misslyckades GOTO Slut: Slut IF EXIST% tmpFile% DEL / F / Q% tmpFile% OM EXIST% tmpPath% RMDIR / S / Q% tmpPath% ENDLOCAL

Länkar

Hämta DeepArchiveSkript från SysadminGeek.com

Hämta 7-Zip kommandoradsverktyg