Легко конвертувати всі ваші архіви Zip в архіви 7z
Формат zip є стандартом для стиснення файлів, однак багато хто з типів адміністраторів і системних адміністраторів воліють використовувати формат 7z, оскільки він пропонує значно кращі коефіцієнти стиснення. У форматі zip є кілька речей, таких як швидкість (відносно інших форматів стиснення) і підтримка додатків.
Тому, щоб отримати найкраще з обох світів, ми створили скрипт, який конвертує ваші zip-файли в 7z-файли за допомогою однієї команди, процес, який ми називаємо "глибоким архівацією".
Практичне використання
Так чому ж вам потрібен цей сценарій, коли ви могли б просто створити 7z архіви, щоб почати? Ось кілька причин:
- Деякі програми можуть створювати лише архіви формату ZIP.
- Оскільки стиснення zip відбувається швидше, ніж стиснення 7z, ви можете швидко створити zip-файл, а потім "глибоко стиснути" його пізніше.
Розглянемо такий сценарій:
Ви запускаєте FTP-сайт, на який клієнти завантажують дані у форматі zip. Потім користувачі завантажують та використовують дані, якщо потрібно, але ви хочете тримати ці файли на деякий час тільки на випадок, якщо ваші користувачі потребують їх знову (у цьому випадку ви герой за те, що вони доступні). Щоб заощадити місце, можна перетворити архіви zip у формат 7z і зберегти їх.
Також можна замінити завантажені дані користувача зі сценарію, наведеного вище, із резервними даними користувача (або будь-яким іншим способом), і ви можете побачити багато практичних додатків для цього.
Сценарій
@ECHO OFF ECHO Глибокий архів ECHO Написав: Джейсон Фолкнер ECHO SysadminGeek.com ECHO. ECHO. REM бере Zip-файл і повторно стискає його як 7z-архів. Процес REM Script: REM 1. Розпакуйте існуючий архів. REM 2. Стисніть витягнуті файли у форматі 7z. REM 3. (необов'язково) Перевірка нового 7z-файлу. REM 4. (необов'язково) Видалення вихідного архіву. REM REM Використання: REM DeepArchive ZipFile REM REM Вимоги: REM Інструмент командного рядка 7-Zip (7za.exe) знаходиться в місці, встановленому в змінної PATH. REM REM Додаткові примітки: REM Цей сценарій обробляє один zip-архів. REM Для обробки всіх архівів zip в папці використовуйте команду ForFiles з командного рядка: REM FORFILES / P "pathtozipfiles" / M * .zip / C "cmd / c DeepArchive @path" REM REM Для запуску стиснення / декомпресії архіву як фонові процеси з низьким пріоритетом REM додають це перед командами 7ZA (НЕ додайте це перед командою перевірки 7ZA): REM START / BelowNormal / Wait REM Додавання вищезазначеної команди використовуватиме нове вікно для виконання цих операцій. SETLOCAL EnableExtensions EnableDelayedExpansion REM Чи повинен бути перевірений глибокий архівний файл? (1 = так, 0 = ні) SET Validate = 0 Рівень стиснення REM: 1,3,5,7,9 (вище = повільніше, але більше стиснення) SET CompressLevel = 5 REM Видалення файлу zip-джерела на успіх? (1 = так, 0 = ні) SET DeleteSourceOnSuccess = 1 REM ---- Не змінюйте нічого нижче цього рядка ---- SET ArchiveFile =% 1 SET DeepFile =% ArchiveFile: .zip = .7z% SET tmpPath =% TmpPath = "% tmpPath%" SET tmpFile = "% TEMP% tmpDeepArchive.txt" якщо не існує% tmpPath% (MKDIR% tmpPath%) ELSE (RMDIR / S / Q% tmpPath%) ECHO Вилучення архіву:% ArchiveFile% 7ZA x% ArchiveFile% -o% tmpPath% ECHO. ECHO Стиснення архіву:% DeepFile% 7ZA a -t7z -mx% CompressLevel%% DeepFile%% tmpPathZip% ECHO. IF % Validate% == 1 (Архів перевірки ECHO:% DeepFile% 7ZA t% DeepFile% | FIND / C "Все нормально">% 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 Script з SysadminGeek.com
Завантажити 7-Zip інструмент командного рядка