Edited at

PowerShellで7zを扱うCmdletsをご紹介


はじめに

何気なく調べていたらexeを頑張って呼び出している人がいたのでメモ。

これを入れても結局7z.dllが入るのですが。

標準のCompress-Archiveではパスワードzipが作成できませんがこちらは作成できるので、

インストールできる環境であればこちらを使用したほうが良さそうです。


紹介

7Zip4Powershellを使おう!

https://www.powershellgallery.com/packages/7Zip4Powershell/1.9.0


インストール方法

リンク先に書かれていますが一応書いておきます。

Install-Module -Name 7Zip4Powershell


Cmdletsの簡単な説明

ざっくりサンプルのため詳細はGet-Helpで確認しましょう。


Expand-7Zip

7Zipファイルを展開する


Expand-7Zip



Expand-7Zip -ArchiveFileName "D:\temp.7z" -Path "D:\test-folder"


Compress-7Zip

7Zipファイルを作成する

Pathにはファイルを指定してもフォルダを指定しても良いです。


Compress-7Zip



Compress-7Zip -ArchiveFileName "D:\test.7z" -Path "D:\7ztest-folder"

パスワードも付けられます


Compress-7Zip



Compress-7Zip -ArchiveFileName "D:\test.7z" -Path "D:\test-folder" -Password 'p@ssw0rd'


Get-7Zip

7Zipファイル内のファイルリストが取得できます。


Get-7Zip



Get-7Zip -ArchiveFileName "D:\test.7z"

Index : 0
FileName : a01.csv
LastWriteTime : 2018/08/31 10:28:24
CreationTime : 2019/02/20 14:11:52
LastAccessTime : 2019/02/20 14:11:52
Size : 84932475
Crc : 1549341964
Attributes : 32
IsDirectory : False
Encrypted : False
Comment :


ArchiveFileInfo型の配列で結果が返るようです。


GetType



(Get-7Zip -ArchiveFileName "D:\test.7z")[0].GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False ArchiveFileInfo System.ValueType



Get-7ZipInformation

7Zipファイルの情報が取得できます。


Get-7ZipInformation

Get-7ZipInformation -ArchiveFileName "D:\test.7z"

FileName : test.7z
PackedSize : 2960164
UnpackedSize : 84932475
FilesCount : 1
FullPath : D:\test.7z
Format : SevenZip
Method : LZMA2:26


こちらはArchiveInformation型で返される様子


GetType



(Get-7ZipInformation -ArchiveFileName "D:\test.7z").GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False ArchiveInformation System.Object



「この記事は以下の記事からリンクされています」に出したいがためのリンク集

https://qiita.com/Q11Q/items/c309ff435d59413808d6

https://qiita.com/arachan@github/items/1147915cd0bcc011872f

https://qiita.com/kmr_hryk/items/5dfe87c0035887cbd8e4

https://qiita.com/arai-wa/items/2e4b1de0f9a3af7f1f9d

https://qiita.com/kurukurupapa@github/items/99f739f0c0dd402e03ea

https://qiita.com/Fushihara/items/5834b1f1d94ca72ebef4