PowerShellでファイル圧縮

PowerShellのVer5.0以降では、専用のコマンドとしてZip圧縮がサポートされています。
確認してみると、2つのコマンドが確認できます。

  • Compress-Archive(ファイル/フォルダ圧縮)
  • Expand-Archive(ファイル/フォルダ解凍)

<< Compress-Archive >>
ファイル/フォルダの圧縮を実行できます。

Compress-Archive -Path 圧縮元ファイル/フォルダ -DestinationPath 圧縮先指定(ファイル名も可)

試してみたところ、圧縮元が空フォルダである場合は圧縮ファイルは作成されないようです。
1つでも中身があれば正常に圧縮することができました。
ちなみに圧縮元ファイル/フォルダはワイルドカードが使用できる模様です。

Compress-Archive -Path C:\Test\* -DestinationPath C:\ArchiveTest.zip

「-CompressionLevel」オプションを使用することで、圧縮レベルを調整することができるようです。

  • Fastest:圧縮は高速だが、圧縮後のサイズは大きくなる。
  • NoCompression:圧縮はせず、ファイル/フォルダをまとめるだけ。
  • Optimal:(既定)ファイルサイズに応じて自動的に調整する。

圧縮対象が大量にある場合は変化があるかもしれませんが、通常はわざわざ変更する恩恵を受けられないかも・・・。

「-Update」オプションを使用することで、既存zipファイルにファイル/フォルダを追加できます。

Compress-Archive -Path C:\Test2 -Update -DestinationPath C:\ArchiveTest.zip

便利ですが機能上パスワードは設定できず、現在2GBまでのファイルしか圧縮できないようです。
ログローテーションなどに使用する分には十分な機能かと思います。

<< Expand-Archive >>
ファイル/フォルダの展開を実行できます。

Expand-Archive -Path C:\ArchiveTest.zip -DestinationPath C:\ExpandDirectory

こちらは単純に展開するだけですね。
残念ながら、こちらもパスワード付きzipには対応していません。
より高度な機能を使用するなら、専用のアーカイバーをインストールしてしまったほうが良いようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です