圧縮にどれくらい時間がかかるかは気にせず、達成したいのは次の2つだけです。
したがって、7-Zipなどの提案は、(非常に優れた.7z形式を使用するのではなく)7-Zipが標準のZip圧縮で少し優れている場合を除いて、あまり役に立ちません。
理想的には私が探しています:
圧縮にかかる時間は問題ではありません。
最後に、「Wordサイズ」や「Dictionaryサイズ」など、いくつかのファイルは異なる設定で圧縮した方がよい場合があります-ファイルを分析して最も適切な圧縮率を選択できるツール、またはWinZip、7-Zipなどはすでにそれをしますか?
Windows XPに組み込まれているZipフォルダー機能との互換性が必要な場合は、Deflate圧縮を使用できません。最近のバージョンのwinZipとPowerArchiverで利用できる高度な圧縮方法(LZMA、PPMD、WavPack、Bzip2など)をはるかに下回って、Deflate64を使用することさえできないと思います。 PowerArchiverは、少なくともデフォルトでそれらのファイルに.zipx拡張子を使用します-WinZipはまだそれを行っていないと思います。
7-Zipが作成できる最小のZipファイルは、次のコマンドラインで実行できます。
7za a -mm=Deflate -mfb=258 -mpass=15 -r C:\Path\To\Archive.Zip C:\Path\To\Files\*
特に注意:7-Zipのワイルドカードパーサーは、システムの他のほとんどのパーサーと同じではありません。 *.*
は、拡張子を持つすべてのファイルを意味します。 *
はallファイルを意味します。
この方法で.Zipファイルを作成する(そしておそらく、より小さな「標準」.Zipファイルを作成しようとする他のツールを使用する)には、本当に非常に時間がかかります。 7-ZipまたはWinRarを使用して自己解凍アーカイブを作成することにより、時間とスペースを大幅に節約することができます。
私が知っている最高のdeflate(標準のZipで使用される圧縮形式)コンプレッサーは次のとおりです。
Zopfliを使用したデータ圧縮 ( 元の からアーカイブ)から、ファイルの圧縮ファイルサイズ比較をデフレートします。
╔══════════════╦═══════════╦═════════╦═════════╦═════════╦═════════╗
║ ║Corpus size║gzip -9 ║7-Zip ║kzip ║Zopfli ║
╠══════════════╬═══════════╬═════════╬═════════╬═════════╬═════════╣
║Alexa-top-10k ║ 693108837║128498665║125599259║125163521║123755118║
║Calgary ║ 3141622║ 1017624║ 980674║ 978993║ 974579║
║Canterbury ║ 2818976║ 730732║ 675163║ 674321║ 669933║
║enwik8 ║ 100000000║ 36445248║ 35102976║ 35025767║ 34995756║
╚══════════════╩═══════════╩═════════╩═════════╩═════════╩═════════╝
ランダムなPNGでも、Zopfliは pngoutより0.5%優れている でした。 Zopfliはそれらすべての中で最小になります。
Windowsを使用している場合:Zip形式を引き続き使用する場合は、 こちら にあるKen Silvermanの無料のKZIPコマンドラインユーティリティを使用することをお勧めします。圧縮する必要があるすべてのファイルを含むフォルダー内にコピーし、CMDを使用してそのフォルダーに移動して、次のコマンドを実行します。
kzip /r <filename of Zip file> *.*
Roaldが示唆するように、kzip.exe
は、システムのPATH変数に常駐して、アーカイブ/ Zipファイルに含まれないようにします。
これまでのところ、KZIPで作成されたZipファイルは、他のZip圧縮プログラムで作成されたファイルよりも約10〜20%小さいことがわかりました。また、他のアーカイブソフトウェア(Winzip、WinRAR、7-Zipなど)やWindowsでも完全に開くことができます。
.ZipファイルタイプとDeflate64圧縮方法を使用して、フォルダー内のすべてのフォルダーを個々のZipファイルに圧縮する非常にシンプルなスクリプト。
@echo off
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.Zip" "%%X\" -tzip -mx9 -mm=Deflate64