تنسيق zip هو المعيار للملفضغط ، ومع ذلك تفضل العديد من أنواع مستخدم السلطة وأنظمة المسؤول استخدام تنسيق 7z لأنه يوفر نسب ضغط أفضل بكثير. يحتوي تنسيق zip على عدد قليل من الأشياء ، مثل السرعة (بالنسبة إلى تنسيقات الضغط الأخرى) ودعم التطبيق.
للحصول على أفضل ما في العالمين ، أنشأنا نصًا يحول ملفاتك المضغوطة إلى ملفات 7z باستخدام أمر واحد ، وهي عملية نسميها "الأرشفة العميقة".
الاستخدامات العملية
فلماذا تحتاج هذا البرنامج النصي عندما يمكنك فقط إنشاء أرشيفات 7z لتبدأ؟ فيما يلي بعض الأسباب:
- قد تنتج تطبيقات معينة أرشيفات بتنسيق zip فقط.
- نظرًا لأن ضغط zip أسرع من ضغط 7z ، فقد تحتاج إلى إنشاء ملف مضغوط بسرعة ثم "ضغط عميق" عليه لاحقًا.
النظر في هذا السيناريو:
تقوم بتشغيل موقع FTP حيث يقوم العملاء بتحميل البياناتلك في شكل الرمز البريدي. يقوم المستخدمون لديك بعد ذلك بتنزيل البيانات واستخدامها حسب الحاجة ولكنك تريد الاحتفاظ بهذه الملفات لفترة من الوقت فقط في حالة احتياج المستخدمين إليها مرة أخرى (وفي هذه الحالة تكون بطلاً لتوفرها بسهولة). لتوفير بعض المساحة ، يمكنك تحويل أرشيفات zip إلى تنسيق 7z وتخزينها بعيدًا.
بدلاً من ذلك ، استبدل البيانات التي حمّلها العميل من السيناريو أعلاه ببيانات المستخدم التي تم نسخها احتياطيًا (أو أي شيء آخر يمكنك التفكير فيه) ويمكنك أن ترى أن هناك العديد من التطبيقات العملية لهذا الغرض.
النص
@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
الروابط
تنزيل البرنامج النصي DeepArchive من SysadminGeek.com
قم بتنزيل أداة سطر أوامر 7-Zip