Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

何気なく調べていたら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

LightSilver7
プログラミング能力に乏しい運用マンがコピペで幸せになる社会になってほしい。
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