Windowsでzipファイルを分割したり結合したりする

はじめに

大きめのファイルをアップローダとかで他の人に渡す場合など、zipファイルを分割したかったりすることがあります。 でも結合にわざわざソフト入れてもらうのもなーと思ってたら、結合だけなら標準のコマンドでできたのでした*1。 というわけで、やり方を書いておきます。

環境

  • Windows 8.1(XPとか7とかでも大丈夫)
  • 7-Zip 9.20(分割ファイル作成用)

分割方法

分割は7-Zipを使います。公式サイトのとおりにやるだけです。

分割圧縮の方法 | 7-Zip

GUIの場合

分割圧縮したいファイルやフォルダを右クリックして「Add to archive...」を選択し…

f:id:ser1zw:20141019043736p:plain

「書庫を分割」で1ファイルあたりのサイズを指定します。メニューに無いサイズでも直接入力すれば指定できます。 数値だけであればバイト単位ですが、K(キロバイト)、M(メガバイト)、G(ギガバイト)といった指定もできるようです。

f:id:ser1zw:20141019041359p:plain

処理が終了すると、指定したサイズでファイル末尾に 001、002、… という連番のファイルが作成されます。

f:id:ser1zw:20141019043909p:plain

コマンドの場合

コマンドプロンプトから、以下のコマンドを実行します。

7z.exe a -v[1ファイルあたりのサイズ] [圧縮ファイル名] [分割圧縮したいファイル/フォルダ名]

今回の場合はこんな感じです。

f:id:ser1zw:20141019044226p:plain

終了すると、GUIの場合と同じように分割圧縮ファイルが作成されます。

結合方法

実はWindowsのcopyコマンドは、ファイルを + でつなげたりワイルドカードを使用したりすることで、複数のファイルを1つにつなげることができます。 zipファイルの場合はバイナリファイルとして扱いたいので /B オプションをつけて、以下のコマンドを実行します。 [分割ファイル1]+[分割ファイル2]+…[分割ファイルN]の部分はワイルドカードで指定してもOKです。

COPY /B [分割ファイル1]+[分割ファイル2]+…[分割ファイルN] [結合ファイル名]

今回の場合はこんな感じです。

f:id:ser1zw:20141019045603p:plain

終了すると、[結合ファイル名]で指定したファイルが作成されています。

f:id:ser1zw:20141019045612p:plain

あとはこれを普通に展開すれば中身が取り出せます。

まとめ

というわけで、分割ファイルの結合だけであればWindows標準のコマンドでできるのでした。 結合のためにわざわざソフトを入れてもらわなくても済むのは大変ありがたいところです。

参考

*1:分割は他のソフト頼みですが