Enkelt Konverter alle zip-arkivene til 7z-arkiv
Zip-formatet er standarden for filkomprimering, men mange strømbruker- og systemadministratortyper foretrekker å bruke 7z-formatet fordi det gir betydelig bedre kompresjonsforhold. Zip-formatet har noen ting som går for det, for eksempel hastighet (i forhold til andre komprimeringsformater) og applikasjonsstøtte.
For å få det beste fra begge verdener har vi opprettet et skript som konverterer zip-filer til 7z-filer med en enkelt kommando, en prosess vi kaller "dyp arkivering".
Praktiske bruksområder
Så hvorfor ville du trenge dette skriptet når du bare kunne lage 7z arkiver til å begynne med? Her er noen grunner:
- Enkelte programmer kan bare produsere zip-formatarkiver.
- Siden zip-komprimering er raskere enn 7z-komprimering, vil du kanskje raskt lage en zip-fil og deretter "dyp komprimere" den senere.
Vurder dette scenariet:
Du kjører et FTP-område der kundene laster opp data til deg i zip-format. Brukerne dine laster ned og bruker dataene etter behov, men du vil beholde disse filene for en stund, bare hvis du bruker brukerne igjen (i så fall er du en helt for å ha dem lett tilgjengelig). For å spare litt plass, kan du konvertere zip-arkivene til 7z-format og stanse dem bort.
Alternativt kan du erstatte kundeopplastede data fra scenariet ovenfor med sikkerhetskopierte brukerdata (eller hva du kan tenke på) og du kan se at det er mange praktiske applikasjoner for dette.
Manuset
@ECHO FRA ECHO Deep Archive ECHO Skrevet av: Jason Faulkner ECHO SysadminGeek.com ECHO. EKKO. REM Tar en Zip-fil og rekomprimerer den som 7z-arkiv. REM Script prosess: REM 1. Dekomprimer det eksisterende arkivet. REM 2. Komprimer de ekstraherte filene i 7z format. REM 3. (valgfritt) Bekreft den nye 7z-filen. REM 4. (valgfritt) Slett kildearkivet. REM REM Bruk: REM DeepArchive ZipFile REM REM Krav: REM 7-Zip kommandolinjeverktøyet (7za.exe) er på et sted som er angitt i PATH-variabelen. REM REM Ekstra notater: REM Dette skriptet behandler et enkelt zip-arkiv. REM For å behandle alle zip-arkiver i en mappe, bruk kommandoen ForFiles fra kommandolinjen: REM FORFILES / P "pathtozipfiles" / M * .zip / C "cmd / c DeepArchive @ path" REM REM For å kjøre arkivkomprimering / dekomprimering som lavprioritetsbakgrunnsprosesser REM legger til dette foran 7ZA-kommandoene (IKKE legg til dette foran validerings 7ZA-kommandoen): REM START / BelowNormal / Wait REM Hvis du legger til kommandoen ovenfor, brukes et nytt vindu for å utføre disse operasjonene. SETLOCAL EnableExtensions EnableDelayedExpansion REM Skal den dype arkivfilen bli validert? (1 = ja, 0 = nei) SET Validate = 0 REM Komprimeringsnivå: 1,3,5,7,9 (høyere = langsommere men mer komprimering) SET CompressLevel = 5 REM Slett kilde zip-fil på suksess? (1 = ja, 0 = nei) SET DeleteSourceOnSuccess = 1 REM ---- Ikke endre noe under denne linjen ---- SET ArchiveFile =% 1 SET DeepFile =% ArchiveFile: .zip = .7z% SET tmpPath =% TEMP %% ~ nx1 SET tmpPathZip = "% tmpPath% *" SET tmpPath = "% tmpPath%" SET tmpFile = "% TEMP% tmpDeepArchive.txt" HVIS IKKE EXIST% tmpPath% (MKDIR% tmpPath%) ELSE (RMDIR / S / Q% tmpPath%) ECHO Utdrag arkiv:% ArchiveFile% 7ZA x% ArchiveFile% -o% tmpPath% ECHO. ECHO Komprimer arkiv:% DeepFile% 7ZA a -t7z -mx% CompressLevel%% DeepFile%% tmpPathZip% ECHO. IF % Validate% == 1 (ECHO Validerer arkiv:% DeepFile% 7ZA t% DeepFile% | FIND / C "Alt er 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
lenker
Last ned DeepArchive Script fra SysadminGeek.com
Last ned 7-Zip Command Line Tool