Format zip je standard za datotekukompresije, međutim mnogi tipovi korisnika energije i administratora sustava radije koriste 7z format jer nudi značajno bolje omjere kompresije. Zip format ima nekoliko stvari, poput brzine (u odnosu na druge forme kompresije) i podrške za aplikaciju.
Kako bismo postigli najbolje iz oba svijeta, napravili smo skriptu koja će s jednom naredbom pretvoriti vaše zip datoteke u 7z datoteke, proces koji nazivamo "dubokim arhiviranjem".
Praktične uporabe
Pa zašto bi vam trebala ova skripta kad biste za početak mogli stvoriti 7z arhive? Evo nekoliko razloga:
- Određene aplikacije smiju stvarati samo arhive ZIP formata.
- Budući da je kompresija zip brža od kompresije od 7z, možda biste željeli brzo izraditi zip datoteku i kasnije je "duboko komprimirati".
Razmislite o ovom scenariju:
Vodite FTP mjesto na kojem kupci prenose podatkevama u zip formatu. Tada vaši korisnici preuzimaju i upotrebljavaju podatke prema potrebi, ali ih želite zadržati neko vrijeme, samo u slučaju da ih vaši korisnici ponovo trebaju (u kojem ste slučaju heroj zbog dostupnosti podataka). Kako biste uštedjeli nešto prostora, možete pretvoriti zip arhive u 7z format i tako ih spremiti.
Alternativno, zamijenite podatke koji su prenijeli kupci iz gornjeg scenarija sigurnosnim kopijama korisničkih podataka (ili što god vam drugo padne na pamet) i vidjet ćete da postoje mnoge praktične aplikacije za to.
Skripta
@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
linkovi
Preuzmite DeepArchive skriptu sa SysadminGeek.com
Preuzmite 7-Zip alat naredbenog retka