Powershell

PowerShellでファイルやディレクトリをzip圧縮する方法【パスワード付きも】

Powershell

PowerShellを利用することでファイルやディレクトリに対してコピーや削除などを容易に行うことができます。今回はファイルやディレクトリをPowershellで圧縮する方法についてTipsとして紹介いたします。

また、合わせてパスワード付きのzipについて作成する方法についても紹介します。

Powershellでファイルやを圧縮する方法

単にファイルを圧縮するだけであれば標準で備わっている「Compress-Archive」コマンドを利用するだけで簡単に実現できます。

例として以下のようなスクリプト(CompressArchive.ps1)だけでできます。同じフォルダ内にあるファイル(file.txt)とディレクトリ(directory)を圧縮しています。

<#
[説明]
    指定したファイルとフォルダを圧縮します。
#>

# ファイル(file.txt)を圧縮
Compress-Archive -Path "file.txt" -DestinationPath ("file.text"+".zip")

# ファイル(directory)を圧縮
Compress-Archive -Path "directory" -DestinationPath ("directory"+".zip")

# End Script...

パスワード付きzipを作成する

次にパスワード付きzipを作成する方法ですが、残念ながらPowerShellでパスワード付きzipを作ることはできません。

方法としては「7zip」を利用してパスワード付きzipを作ることができます。

まず7zipをダウンロードします。実際にはコマンドラインバージョンの7zipを利用します。

ただし、このコマンドラインバージョンは.7z拡張子でダウンロードされるので、それを解凍するのに通常のインストールバージョンのインストールも必要です。

https://sevenzip.osdn.jp/download.html

コマンドラインバージョンのファイルを解凍すると、7za.exeと他のファイル類が展開レます。7za.exeを使うことで簡単にパスワード付きzipを利用できます。

例として以下のコマンドでパスワード付きのzipを作成することができます。

  • 使いかた
    .\7za.exe a -p[Pass] [zip後ファイル] [zip前ファイル]
    ファイルの指定(後と前)する順番に注意です!
  • -pの後の文字列がパスワードになります。空白ないので注意です。例では[PassWord]を設定してます。
  • 注意としてUNCパス経由での実行はできないようです。ローカルパス上で実行する必要があります。
.\7za.exe a -pPassWord .\Test-file-password.txt.zip .\Test-file-password.txt

きちんとパスワードが必要になっていることが確認できます。

ファイル圧縮などをPowershellや7zipコマンドで行うことができたので、メールでのファイル添付などを行う前にファイル圧縮するなどの選択の幅がグッと広がりますね。

添付メールの送信方法は以下で紹介してますので興味があれば参考にしてください。

今回は以上になります。

コメント