【PowerShell】出力形式を変更する[Format-List,Format-Table,Format-Wide]

こんにちは。
けいぞうです。

今回はPowerShellで取得したオブジェクトを標準出力する際に、
見た目(表示形式)をカスタマイズする方法について解説します。

[目次]

指定なしの場合

比較のために、何も指定しなかった場合の表示形式も示しておきます。

今回は、Get-ChildItemでオブジェクトを取得するコマンドを打った場合です。

PS C:\work\test> Get-ChildItem


    ディレクトリ: C:\work\test


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2020/03/09     20:57                A
-a----       2020/03/09     20:52              3 memo_abc.txt
-a----       2020/03/09     20:52              3 memo_def.txt

フォルダが1つとファイルが2つ取得されて表示されています。

何も指定しない場合はこのように表示されますね。

  • 既定の属性値のみ表示される
  • 表形式のような形で表示される

Format-List

出力形式をリストビューにして表示する方法です。

PS C:\work\test> Get-ChildItem | Format-List


    ディレクトリ: C:\work\test



Name           : A
CreationTime   : 2020/03/03 21:42:15
LastWriteTime  : 2020/03/09 20:57:10
LastAccessTime : 2020/03/21 22:15:11
Mode           : d-----
LinkType       :
Target         : {}

Name           : memo_abc.txt
Length         : 3
CreationTime   : 2020/03/03 21:52:59
LastWriteTime  : 2020/03/09 20:52:41
LastAccessTime : 2020/03/22 7:01:03
Mode           : -a----
LinkType       :
Target         : {}
VersionInfo    : File:             C:\work\test\memo_abc.txt
                 InternalName:
                 OriginalFilename:
                 FileVersion:
                 FileDescription:
                 Product:
                 ProductVersion:
                 Debug:            False
                 Patched:          False
                 PreRelease:       False
                 PrivateBuild:     False
                 SpecialBuild:     False
                 Language:


Name           : memo_def.txt
Length         : 3
CreationTime   : 2020/03/03 21:42:10
LastWriteTime  : 2020/03/09 20:52:41
LastAccessTime : 2020/03/22 7:01:03
Mode           : -a----
LinkType       :
Target         : {}
VersionInfo    : File:             C:\work\test\memo_def.txt
                 InternalName:
                 OriginalFilename:
                 FileVersion:
                 FileDescription:
                 Product:
                 ProductVersion:
                 Debug:            False
                 Patched:          False
                 PreRelease:       False
                 PrivateBuild:     False
                 SpecialBuild:     False
                 Language:

Fotmat-Listで取得すると、このように縦長なリストビューになります。

縦長なので、既定の属性値以外も表示してくれます。


Format-Listには「fl」というエイリアスが用意されているので、これで代用して記載することも可能です。

また、属性を指定して取得することも可能です。

以下、例文です。

PS C:\work\test> Get-ChildItem | fl Name,Length,Mode


Name : A
Mode : d-----

Name   : memo_abc.txt
Length : 3
Mode   : -a----

Name   : memo_def.txt
Length : 3
Mode   : -a----
  • 縦長のリストビューで表示される
  • 既定の属性値以外も表示される
  • 「fl」というエイリアスが使える
  • 表示する属性の指定も可能

Format-Table

出力形式をテーブル型式にしてい表示する方法です。

PS C:\work\test> Get-ChildItem | Format-Table


    ディレクトリ: C:\work\test


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2020/03/09     20:57                A
-a----       2020/03/09     20:52              3 memo_abc.txt
-a----       2020/03/09     20:52              3 memo_def.txt

Formatを指定しなかった場合と同じ表示形式になっているのが分かると思います。


Format-Listと同様にエイリアスが用意されており「ft」で代用可能です。

また、属性を指定することも可能です。

以下、例文です。

PS C:\work\test> Get-ChildItem | ft Name,Length,Mode

Name         Length Mode
----         ------ ----
A                   d-----
memo_abc.txt 3      -a----
memo_def.txt 3      -a----
  • 表形式で表示される
  • デフォルトの表示形式
  • 「ft」というエイリアスが使える
  • 表示する属性の指定も可能

Format-Wide

既定の属性がワイドは列幅で表示される方法です。

PS C:\work\test> Get-ChildItem | Format-Wide


    ディレクトリ: C:\work\test



A                                         memo_abc.txt
memo_def.txt

表示する属性を指定することで変更はできますが、1つしか指定することはできません。


こちらも「fw」というエイリアスが使用可能です。

また、表示する列数を指定することが可能です。

以下、例文です。

PS C:\work\test> Get-ChildItem | fw Mode -Column 1


d-----
-a----
-a----

Select-Object *

Formatではありませんが、Select-Objectに「*」を指定することで、リストビューで全属性を表示することができます。

PS C:\work\test> Get-ChildItem | Select-Object *


PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\work\test\A
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\work\test
PSChildName       : A
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : True
Mode              : d-----
BaseName          : A
Target            : {}
LinkType          :
Name              : A
FullName          : C:\work\test\A
Parent            : test
Exists            : True
Root              : C:\
Extension         :
CreationTime      : 2020/03/03 21:42:15
CreationTimeUtc   : 2020/03/03 12:42:15
LastAccessTime    : 2020/03/21 22:15:11
LastAccessTimeUtc : 2020/03/21 13:15:11
LastWriteTime     : 2020/03/09 20:57:10
LastWriteTimeUtc  : 2020/03/09 11:57:10
Attributes        : Directory

PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\work\test\memo_abc.txt
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\work\test
PSChildName       : memo_abc.txt
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : False
Mode              : -a----
VersionInfo       : File:             C:\work\test\memo_abc.txt
                    InternalName:
                    OriginalFilename:
                    FileVersion:
                    FileDescription:
                    Product:
                    ProductVersion:
                    Debug:            False
                    Patched:          False
                    PreRelease:       False
                    PrivateBuild:     False
                    SpecialBuild:     False
                    Language:

BaseName          : memo_abc
Target            : {}
LinkType          :
Name              : memo_abc.txt
Length            : 3
DirectoryName     : C:\work\test
Directory         : C:\work\test
IsReadOnly        : False
Exists            : True
FullName          : C:\work\test\memo_abc.txt
Extension         : .txt
CreationTime      : 2020/03/03 21:52:59
CreationTimeUtc   : 2020/03/03 12:52:59
LastAccessTime    : 2020/03/22 7:01:03
LastAccessTimeUtc : 2020/03/21 22:01:03
LastWriteTime     : 2020/03/09 20:52:41
LastWriteTimeUtc  : 2020/03/09 11:52:41
Attributes        : Archive

PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\work\test\memo_def.txt
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\work\test
PSChildName       : memo_def.txt
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : False
Mode              : -a----
VersionInfo       : File:             C:\work\test\memo_def.txt
                    InternalName:
                    OriginalFilename:
                    FileVersion:
                    FileDescription:
                    Product:
                    ProductVersion:
                    Debug:            False
                    Patched:          False
                    PreRelease:       False
                    PrivateBuild:     False
                    SpecialBuild:     False
                    Language:

BaseName          : memo_def
Target            : {}
LinkType          :
Name              : memo_def.txt
Length            : 3
DirectoryName     : C:\work\test
Directory         : C:\work\test
IsReadOnly        : False
Exists            : True
FullName          : C:\work\test\memo_def.txt
Extension         : .txt
CreationTime      : 2020/03/03 21:42:10
CreationTimeUtc   : 2020/03/03 12:42:10
LastAccessTime    : 2020/03/22 7:01:03
LastAccessTimeUtc : 2020/03/21 22:01:03
LastWriteTime     : 2020/03/09 20:52:41
LastWriteTimeUtc  : 2020/03/09 11:52:41
Attributes        : Archive

単純にFormat-Listで表示した場合は全属性ではなかったことが分かりますね。