Dễ dàng chuyển đổi tất cả Lưu trữ Zip của bạn sang Lưu trữ 7z
Định dạng zip là tiêu chuẩn để nén tệp, tuy nhiên nhiều loại quản trị viên hệ thống và người dùng quyền lực thích sử dụng định dạng 7z vì nó cung cấp tỷ lệ nén tốt hơn đáng kể. Định dạng zip có một vài thứ phù hợp với nó, chẳng hạn như tốc độ (so với các định dạng nén khác) và hỗ trợ ứng dụng.
Vì vậy, để có được sự tốt nhất của cả hai thế giới, chúng tôi đã tạo một tập lệnh sẽ chuyển đổi các tệp zip của bạn thành các tệp 7z bằng một lệnh duy nhất, một quá trình chúng tôi đang gọi là lưu trữ sâu.
Sử dụng thực tế
Vậy tại sao bạn lại cần kịch bản này khi bạn chỉ có thể tạo tài liệu lưu trữ 7z để bắt đầu? Dưới đây là một vài lý do:
- Một số ứng dụng chỉ có thể tạo lưu trữ định dạng zip.
- Vì nén zip nhanh hơn nén 7z, nên bạn có thể muốn nhanh chóng tạo một tệp zip và sau đó, nén sâu sâu vào nó sau.
Hãy xem xét kịch bản này:
Bạn chạy một trang FTP nơi khách hàng tải dữ liệu lên cho bạn ở định dạng zip. Người dùng của bạn sau đó tải xuống và sử dụng dữ liệu khi cần nhưng bạn muốn giữ các tệp này trong một thời gian chỉ trong trường hợp người dùng của bạn cần lại chúng (trong trường hợp đó bạn là anh hùng vì đã có sẵn chúng). Để tiết kiệm không gian, bạn có thể chuyển đổi kho lưu trữ zip sang định dạng 7z và bỏ chúng đi.
Thay phiên, thay thế dữ liệu khách hàng đã tải lên từ kịch bản ở trên bằng dữ liệu người dùng được sao lưu (hoặc bất cứ điều gì khác bạn có thể nghĩ đến) và bạn có thể thấy có nhiều ứng dụng thực tế cho việc này.
Kịch bản
@ECHO TẮT ECHO Lưu trữ sâu ECHO Viết bởi: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Lấy tệp Zip và giải nén nó dưới dạng lưu trữ 7z. Quy trình REM Script: REM 1. Giải nén kho lưu trữ hiện có. REM 2. Nén các tệp được giải nén ở định dạng 7z. REM 3. (tùy chọn) Xác thực tệp 7z mới. REM 4. (tùy chọn) Xóa kho lưu trữ nguồn. REM Cách sử dụng REM: REM DeepArchive ZipFile REM REM Yêu cầu: REM Công cụ dòng lệnh 7-Zip (7za.exe) nằm trong một vị trí được đặt trong biến PATH. REM Ghi chú bổ sung: REM Tập lệnh này xử lý một kho lưu trữ zip duy nhất. REM Để xử lý tất cả các lưu trữ zip trong một thư mục, hãy sử dụng lệnh ForFiles từ dòng lệnh: REM FORFILES / P "pathtozipfiles" / M * .zip / C "cmd / c DeepArchive @path" REM REM Để chạy nén / giải nén lưu trữ vì các quá trình nền ưu tiên thấp REM thêm điều này vào trước các lệnh 7ZA (KHÔNG thêm lệnh này vào trước lệnh 7ZA xác thực): REM START / Dưới đây Bình thường / Chờ REM Thêm lệnh trên sẽ sử dụng một cửa sổ mới để thực hiện các thao tác này. SETLOCAL EnableExtensions EnableDelayedExpansion REM Tập tin lưu trữ sâu có nên được xác nhận không? (1 = có, 0 = không) Xác thực SET = 0 REM Mức nén: 1,3,5,7,9 (cao hơn = chậm hơn nhưng nén nhiều hơn) SET CompressLevel = 5 REM Xóa tệp zip nguồn thành công? (1 = có, 0 = không) SET DeleteSourceOnSuccess = 1 REM ---- Không sửa đổi bất cứ điều gì bên dưới dòng này ---- SET ArchiveFile =% 1 SET DeepFile =% ArchiveFile: .zip = .7z% SET tmpPath =% TEMP %% ~ nx1 SET tmpPathZip = "% tmpPath% *" SET tmpPath = "% tmpPath%" SET tmpFile = "% TEMP% tmpDeepArchive.txt" NẾU KHÔNG EXIST% tmpPath% / Q% tmpPath%) Lưu trữ trích xuất ECHO:% ArchiveFile% 7ZA x% ArchiveFile% -o% tmpPath% ECHO. Lưu trữ nén ECHO:% DeepFile% 7ZA a -t7z -mx% CompressLevel %% DeepFile %% tmpPathZip% ECHO. NẾU % Xác thực% == 1 (Lưu trữ xác thực ECHO:% DeepFile% 7ZA t% DeepFile% | FIND / C "Mọi thứ đều ổn">% 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
Liên kết
Tải xuống DeepArchive Script từ SysadminGeek.com
Tải xuống Công cụ dòng lệnh 7-Zip