Powershellでファイルとフォルダを圧縮させてみました。
ファイルとフォルダを圧縮させる
Compress-Achive コマンドを利用して圧縮可能です。
ファイルの圧縮
# 圧縮するファイルのフルパス
$SourceFilePath = "C:\hogehoge.txt"
# 出力するZIPファイルのフルパス
$ZipFilePath = "C:\CompressedFile.zip"
# ファイルを圧縮
Compress-Archive -Path $SourceFilePath -DestinationPath $ZipFilePath
実行結果
コマンドの実行前後でzipファイル有無を確認しています。
コマンド実行前後で False→True に変わっているので圧縮ファイルが作成されたことが分かります。
PS C:\> # 圧縮するファイルのフルパス
PS C:\> $SourceFilePath = "C:\hogehoge.txt"
PS C:\>
PS C:\> # 出力するZIPファイルのフルパス
PS C:\> $ZipFilePath = "C:\CompressedFile.zip"
PS C:\>
PS C:\> # 事前確認
PS C:\> Test-Path -Path $ZipFilePath
False
PS C:\>
PS C:\> # ファイルを圧縮
PS C:\> Compress-Archive -Path $SourceFilePath -DestinationPath $ZipFilePath
PS C:\>
PS C:\> # 事後確認
PS C:\> Test-Path -Path $ZipFilePath
True
フォルダの圧縮
ファイルの圧縮とほとんど同じコマンドで実行可能です。
# 圧縮するフォルダのパス
$SourceFolderPath = "C:\hogehoge"
# 出力するZIPファイルのフルパス
$ZipFolderPath = "C:\CompressedFolder.zip"
# フォルダを圧縮
Compress-Archive -Path $SourceFolderPath -DestinationPath $ZipFolderPath
実行結果
コマンドの実行前後でzipファイル有無を確認しています。
コマンド実行前後で False→True に変わっているので圧縮ファイルが作成されたことが分かります。
PS C:\> # 圧縮するフォルダのパス
PS C:\> $SourceFolderPath = "C:\hogehoge"
PS C:\>
PS C:\> # 出力するZIPファイルのフルパス
PS C:\> $ZipFolderPath = "C:\CompressedFolder.zip"
PS C:\>
PS C:\> # 事前確認
PS C:\> Test-Path -Path $ZipFolderPath
False
PS C:\>
PS C:\> # フォルダを圧縮
PS C:\> Compress-Archive -Path $SourceFolderPath -DestinationPath $ZipFolderPath
PS C:\>
PS C:\> # 事後確認
PS C:\> Test-Path -Path $ZipFolderPath
True
[参考] 複数ファイルを同じ圧縮ファイルする場合
複数のファイルを同じ圧縮ファイルすることもできます。
ファイルの部分をフォルダにしても実行可能です。
# 圧縮するファイルのフルパス(複数)
$SourceFiles = "C:\FileA.txt", "C:\FileB.txt"
# 出力するZIPファイルのフルパス
$ZipFilePath = "C:\CompressedFiles.zip"
# 複数のファイルを圧縮
Compress-Archive -Path $SourceFiles -DestinationPath $ZipFilePath