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 c:\tmp\file
対象のディレクトリのオブジェクトを取得しました。画面には、ディレクトリの名前や更新日時、属性などのプロパティが表示されています。ディレクトリを指定した場合は、その中に含まれるファイルの一覧ではなく、ディレクトリそのもののオブジェクトを取得します。
Get-Item ではレジストリキーのオブジェクトを取得することもできます。次のように実行してください。
Get-Item HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\
対象のレジストリキーのオブジェクトを取得しました。画面には取得したレジストリキーのプロパティや値が表示されます。
Get-Item では環境変数のオブジェクトを取得することもできます。次のように実行してください。
Get-Item ENV:SystemRoot
対象の環境変数のオブジェクトを取得しました。画面には取得したオブジェクトの値が表示されています。
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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。