Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
50
Help us understand the problem. What is going on with this article?
@n-nabe

超簡単! Powershellでファイルの圧縮/解凍

More than 1 year has passed since last update.

powershellを使ったファイルの圧縮/解凍

powershellで簡単にファイルを圧縮/解凍できたため、メモ。

1. 圧縮

Compress-Archive

Compress-Archive -Path C:\Users\.... -DestinationPath C:\Users\XXX\....

これだけ。めちゃめちゃ簡単。
以下、パラメータの解説。

-Path
必須パラメータ。Compress(圧縮)するファイル/フォルダのパスを指定する。
複数ファイル指定することも可能。ワイルドカードの使用も可能。

-DestinationPath
必須パラメータ。Compress(圧縮)先のパスを指定する。

-Force
上書きする。-Forceパラメータ無しでは、-DestinationPathで指定したzipファイルが既に存在する場合、実行に失敗する。このパラメータを知らず、先日ジョブがこけた。

-Update
既存のzipファイルを更新する。

その他、CompressionLevel、Confirm等のパラメータがあるっぽい。
詳しく書いてある記事がこちら。
[https://cheshire-wara.com/powershell/ps-help/compress-archive-help/]

2. 解凍

Expand-Archive

Expand-Archive -Path C:\Users\.... -DestinationPath C:\Users\XXX\....

これだけ。これもめちゃめちゃ簡単。
以下、パラメータの解説。

-Path
必須パラメータ。Expand(展開)するzipファイルを指定する。

-DestinationPath
必須パラメータ。Expand(展開)先のパスを指定する。

-Force
上書きする。

作ってみた

1 zipファイルを作成するバッチファイルを作成した。

compress-archive.bat
@echo off

rem -フォルダの有無を確認し、ファイルが存在した場合圧縮する

set base_path=C:\Users\XXX\Desktop\compress
set powershell_exe="C:\Users\XXX\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk"
set destination_path=C:\Users\XXX\Desktop\destination

if not exist %base_path% (
    eventcreate /T ERROR /SO test /ID 001 /D "test用イベントログ" /L APPLICATION
    exit /b 1
)

%powershell_exe% Compress-Archive -Path %base_path%\* -DestinationPath %destination_path%\test.zip -Force

exit /b 0

2 zipファイルを解凍するバッチファイルを作成した。

@echo off

rem -ファイルの有無を確認し、あった場合解凍する

set zip_file=C:\Users\XXX\Desktop\destination\test.zip
set powershell_exe="C:\Users\XXX\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk"
set destination_path=C:\Users\XXX\Desktop\expand

if not exist %zip_file% (
    eventcreate /T ERROR /SO test /ID 002 /D "test用イベントログ" /L APPLICATION
    exit /b 1
)

%powershell_exe% Expand-Archive -Path %zip_file% -DestinationPath %destination_path% -Force

exit /b 0

50
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
n-nabe
主に備忘録として使います。 参考になればと思います。 アップロードの回数を2020年から増やしていくことが目標。 主にLinux、SQL、AWSについての記事を投稿する予定。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
50
Help us understand the problem. What is going on with this article?