• 標準ではzip圧縮のコマンドが無い
  • PowerShellの Compress-Archive を使う

Windowsでファイルをzipで圧縮するのをスクリプト化したかった。PowerShellならできるらしいのでやってみた。

以下スクリプトを拡張子 ps1 をつけたファイル名で保存し、右クリックして『PowerShellで実行』選択して起動。

zip.ps1
# 実行ポリシーを設定しないと赤いメッセージが出るので
Set-ExecutionPolicy RemoteSigned -Scope Process

# 作成するzipファイル名を変数で定義
$zipname = "release.zip"

# すでにzipファイルが存在するなら削除
if (Test-Path $zipname) {
	Remove-Item $zipname
}

# zipファイル作成 カンマ区切りで複数のファイル・フォルダを指定
Compress-Archive -Path .\hoge, ..\piyo, ..\..\kani -DestinationPath $zipname

[2019-02-12 追記] この方法で作ったzipをAWS Lambdaにアップロードしたらパスのセパレータがバックスラッシュになってやがった。Linuxに持っていくとダメかもしれない。

結局、下記記事を参考にzipコマンドを導入し、普通にzipコマンドを使ったバッチファイルを作成した。

参考にさせていただいた記事