Get-Itemの使い方:ファイルやディレクトリのオブジェクトを取得する

広告

Get-Item コマンドレットを使用すると、ファイルやディレクトリ、レジストリキーなどのオブジェクトを取得することができます。取得したオブジェクトのプロパティを参照したり、パイプを使って他のコマンドに渡すことができます。ここでは PowerShell における Get-Item コマンドレットの使い方について解説します。

Get-Itemコマンドレットの書式

Get-Item コマンドレットは、ファイルやディレクトリ、レジストリキーなどのオブジェクトを取得するためのコマンドレットです。 Get-Item コマンドレットの書式は次の通りです。

Get-Item
  [-Path] <string[]>
  [-Filter <string>]
  [-Include <string[]>]
  [-Exclude <string[]>]
  [-Force]
  [-Credential <pscredential>]
  [-Stream <string[]>]
  [<CommonParameters>]

Get-Item はエイリアスとして giが定義されています。

gi -> Get-Item

Get-Item を使ってオブジェクトを取得するには次の書式を使用します。

Get-Item -Path 対象のパス

対象のパスには、ファイルやディレクトリのパス、またはレジストリキーを指定します。

-Path は省略可能なので、通常は次のように実行します。

Get-Item 対象のパス

それでは、実際に試してみます。例としてファイルのオブジェクトを取得します。次のように実行してください。

Get-Item c:\tmp\file\memo.txt

対象のファイルのオブジェクトを取得しました。画面には、ファイルの名前や更新日時、サイズなどのプロパティが表示されています。

Get-Itemコマンドレットの使い方(1)

次にディレクトリのオブジェクトを取得します。次のように実行してください。

Get-Item c:\tmp\file

対象のディレクトリのオブジェクトを取得しました。画面には、ディレクトリの名前や更新日時、属性などのプロパティが表示されています。ディレクトリを指定した場合は、その中に含まれるファイルの一覧ではなく、ディレクトリそのもののオブジェクトを取得します。

Get-Itemコマンドレットの使い方(2)

Get-Item ではレジストリキーのオブジェクトを取得することもできます。次のように実行してください。

Get-Item HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\

対象のレジストリキーのオブジェクトを取得しました。画面には取得したレジストリキーのプロパティや値が表示されます。

Get-Itemコマンドレットの使い方(3)

Get-Item では環境変数のオブジェクトを取得することもできます。次のように実行してください。

Get-Item ENV:SystemRoot

対象の環境変数のオブジェクトを取得しました。画面には取得したオブジェクトの値が表示されています。

Get-Itemコマンドレットの使い方(4)

Get-Item では、パスにワイルドカードを使用することで複数のオブジェクトを対象とすることができます。ただし、-Recurse オプションがないため、サブディレクトリ内を再帰的に取得することはできません。複数のファイルやディレクトリを一覧で取得する場合は、Get-ChildItem を使用するのが一般的です。

Get-ChildItem については「Get-ChildItemの使い方:ファイルやディレクトリを一覧表示する」を参照されてください。

オブジェクトのプロパティを確認する

Get-Item で取得したオブジェクトは、パイプを使って他のコマンドに渡すことができます。Get-Member コマンドレットに渡すことで、そのオブジェクトが持つプロパティの一覧を確認できます。

Get-Item 対象のパス | Get-Member -MemberType Property

例として、指定したファイルのプロパティの一覧を取得してみます。次のように実行してください。

Get-Item C:\tmp\memo.txt | Get-Member -MemberType Property

対象のファイルのプロパティ一覧を取得することができました。

PS C:\code\powershell> Get-Item C:\tmp\file\process.txt | Get-Member -MemberType Property

   TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   datetime CreationTime {get;set;}
CreationTimeUtc   Property   datetime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   string DirectoryName {get;}
Exists            Property   bool Exists {get;}
Extension         Property   string Extension {get;}
FullName          Property   string FullName {get;}
IsReadOnly        Property   bool IsReadOnly {get;set;}
LastAccessTime    Property   datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property   datetime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   datetime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   datetime LastWriteTimeUtc {get;set;}
Length            Property   long Length {get;}
LinkTarget        Property   string LinkTarget {get;}
Name              Property   string Name {get;}
UnixFileMode      Property   System.IO.UnixFileMode UnixFileMode {get;set;}

今度は、指定したディレクトリのプロパティの一覧を取得してみます。次のように実行してください。

Get-Item C:\tmp | Get-Member -MemberType Property

対象のディレクトリのプロパティ一覧を取得することができました。

PS C:\code\powershell> Get-Item C:\tmp | Get-Member -MemberType Property

   TypeName: System.IO.DirectoryInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   datetime CreationTime {get;set;}
CreationTimeUtc   Property   datetime CreationTimeUtc {get;set;}
Exists            Property   bool Exists {get;}
Extension         Property   string Extension {get;}
FullName          Property   string FullName {get;}
LastAccessTime    Property   datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property   datetime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   datetime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   datetime LastWriteTimeUtc {get;set;}
LinkTarget        Property   string LinkTarget {get;}
Name              Property   string Name {get;}
Parent            Property   System.IO.DirectoryInfo Parent {get;}
Root              Property   System.IO.DirectoryInfo Root {get;}
UnixFileMode      Property   System.IO.UnixFileMode UnixFileMode {get;set;}

表示されているプロパティは、ファイルやディレクトリの状態を表す情報であり、必要な値を指定して取得することができます。

例えばファイルの更新日時を取得するには LastWriteTime プロパティの値を参照します。

PS C:\code\powershell> (Get-Item C:\tmp\memo.txt).LastWriteTime

2026年4月18日 18:14:02

-- --

PowerShell における Get-Item コマンドレットの使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。