すべてのZipアーカイブを7zアーカイブに簡単に変換
zip形式はファイル圧縮の標準ですが、多くのパワーユーザーやシステム管理者が7z形式を使用することを好んでいます。圧縮形式のほうがはるかに優れているからです。 zip形式には、速度(他の圧縮形式と比較した場合)やアプリケーションのサポートなど、いくつかのことがあります。.
そこで、両方の長所を生かすために、1つのコマンドでzipファイルを7zファイルに変換するスクリプトを作成しました。これを「ディープアーカイブ」と呼びます。.
実用的な使い方
それでは、最初に7zアーカイブを作成するだけでこのスクリプトが必要になるのはなぜでしょうか。ここにいくつかの理由があります:
- 特定のアプリケーションはzip形式のアーカイブしか作成できない.
- zip圧縮は7z圧縮より速いので、zipファイルをすばやく作成し、後でそれを「深圧縮」することをお勧めします。.
このシナリオを考えます:
あなたは、顧客がzip形式であなたにデータをアップロードするFTPサイトを運営します。その後、ユーザーは必要に応じてデータをダウンロードして使用しますが、ユーザーが再びそれらを必要とする場合に備えて、これらのファイルをしばらくの間保持しておきます(その場合、すぐに利用できるようになります)。スペースを節約するために、zipアーカイブを7zフォーマットに変換して隠しておくことができます。.
代わりに、上記のシナリオから顧客がアップロードしたデータをバックアップされたユーザーデータ(または他に考えることができるものは何でも)で置き換えると、これには多くの実用的なアプリケーションがあることがわかります。.
スクリプト
@ ECHO OFF ECHOディープアーカイブECHO作成者:Jason Faulkner ECHO SysadminGeek.com ECHO。エコー。 REM Zipファイルを受け取り、それを7zアーカイブとして再圧縮します。 REMスクリプト処理:REM 1.既存のアーカイブを解凍します。 REM 2.解凍したファイルを7z形式で圧縮します。 REM3。(オプション)新しい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検証= 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 =% TEMP %%〜nx1 SET tmpPathZip = "%tmpPath%*" SET 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および-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
リンク集
SysadminGeek.comからDeepArchiveスクリプトをダウンロードしてください。
7-Zipコマンドラインツールをダウンロードする