Get-ChildItem

1 つ以上の指定された場所から項目および子項目を取得します。

構文

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]
Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

説明

コマンドレットは Get-ChildItem 、指定された 1 つ以上の場所にある項目を取得します。 項目がコンテナーの場合は、コンテナーの中にある項目 (子項目) を取得します。 Recurse パラメーターを使用すると、すべての子コンテナー内の項目を取得し、Depth パラメーターを使用して再帰するレベルの数を制限できます。

Get-ChildItem は空のディレクトリを表示しません。 コマンドに Get-ChildItemDepth パラメーターまたは Recurse パラメーターが含まれている場合、空のディレクトリは出力に含まれません。

場所は PowerShell プロバイダーによって公開されます Get-ChildItem 。 場所には、ファイル システム ディレクトリ、レジストリ ハイブ、または証明書ストアを指定できます。 詳細については、「about_Providers」を参照してください。

例 1: ファイル システム ディレクトリから子項目を取得する

この例では、ファイル システム ディレクトリから子項目を取得します。 ファイル名とサブディレクトリ名が表示されます。 空の場所の場合、コマンドは出力を返せず、PowerShell プロンプトに戻ります。

コマンドレットでは Get-ChildItemPath パラメーターを使用してディレクトリ を指定します C:\TestGet-ChildItem には、PowerShell コンソールにファイルとディレクトリが表示されます。

Get-ChildItem -Path C:\Test

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     08:29                Logs
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a----         2/1/2019     08:43            183 CreateTestFile.ps1
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

既定 Get-ChildItem では、モード (属性)、 LastWriteTime、ファイル サイズ (長さ)、およびアイテムの 名前 が一覧表示されます。 Mode プロパティの文字は、次のように解釈できます。

  • l (リンク)
  • d (ディレクトリ)
  • a (アーカイブ)
  • r (読み取り専用)
  • h (非表示)
  • s (システム)。

モード フラグの詳細については、「 about_Filesystem_Provider」を参照してください。

例 2: ディレクトリ内の子項目名を取得する

この例では、ディレクトリ内の項目の名前のみを一覧表示します。

コマンドレットでは Get-ChildItemPath パラメーターを使用してディレクトリ を指定します C:\TestName パラメーターは、指定したパスのファイル名またはディレクトリ名のみを返します。 返される名前は、 Path パラメーターの値に対する相対的な名前です。

Get-ChildItem -Path C:\Test -Name

Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt

例 3: 現在のディレクトリとサブディレクトリの子項目を取得する

次の使用例は 、現在の ディレクトリとそのサブディレクトリにある.txtファイルを表示します。

Get-ChildItem -Path C:\Test\*.txt -Recurse -Force

Directory: C:\Test\Logs\Adirectory

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile4.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile4.txt

    Directory: C:\Test\Logs\Backup

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 ATextFile.txt
-a----        2/12/2019     15:50             20 LogFile3.txt

    Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile1.txt

    Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

コマンドレットではGet-ChildItem、Path パラメーターを使用して を指定C:\Test\*.txtします。 Path では、アスタリスク (*) ワイルドカードを使用して、ファイル名拡張子 .txtを持つすべてのファイルを指定します。 Recurse パラメーターは、ディレクトリ: 見出しに示すように、Pathディレクトリのサブディレクトリを検索します。 Force パラメーターは、h モードを持つなどのhiddenfile.txt隠しファイルを表示します。

例 4: Include パラメーターを使用して子項目を取得する

この例 Get-ChildItem では、 Include パラメーターを使用して、 Path パラメーターで指定されたディレクトリから特定の項目を検索します。

# When using the -Include parameter, if you don't include an asterisk in the path
# the command returns no output.
Get-ChildItem -Path C:\Test\ -Include *.txt



Get-ChildItem -Path C:\Test\* -Include *.txt

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

コマンドレットは Get-ChildItemPath パラメーターを使用して、ディレクトリ C:\Test を指定します。 Path パラメーターには、ディレクトリの内容を指定する末尾のアスタリスク (*) ワイルドカードが含まれています。 Include パラメーターでは、アスタリスク (*) ワイルドカードを使用して、ファイル名拡張子が.txtのすべてのファイルを指定します。

Include パラメーターを使用する場合、Path パラメーターには、ディレクトリの内容を指定するために、末尾にアスタリスク (*) ワイルドカードが必要です。 たとえば、「 -Path C:\Test\* 」のように入力します。

  • Recurse パラメーターをコマンドに追加した場合、Path パラメーターの末尾のアスタリスク (*) は省略可能です。 Recurse パラメーターは、Path ディレクトリとそのサブディレクトリから項目を取得します。 たとえば、-Path C:\Test\ -Recurse -Include *.txt のように指定します。
  • Path パラメーターに末尾のアスタリスク (*) が含まれていない場合、コマンドは出力を返せず、PowerShell プロンプトに戻ります。 たとえば、「 -Path C:\Test\ 」のように入力します。

例 5: Exclude パラメーターを使用して子項目を取得する

この例の出力は、ディレクトリ C:\Test\Logs の内容を示しています。 出力は、 Exclude パラメーターと Recurse パラメーターを使用する他のコマンドの参照です。

Get-ChildItem -Path C:\Test\Logs

Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     13:21                Adirectory
d-----        2/15/2019     08:28                AnEmptyDirectory
d-----        2/15/2019     13:21                Backup
-a----        2/12/2019     16:16             20 Afile.txt
-a----        2/13/2019     13:26             20 LogFile1.txt
-a----        2/12/2019     16:24             23 systemlog1.log

Get-ChildItem -Path C:\Test\Logs\* -Exclude A*

Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     13:21                Backup
-a----        2/13/2019     13:26             20 LogFile1.txt
-a----        2/12/2019     16:24             23 systemlog1.log

コマンドレットでは Get-ChildItemPath パラメーターを使用してディレクトリ を指定します C:\Test\LogsExclude パラメーターは、アスタリスク (*) ワイルドカードを使用して、A または a で始まるファイルまたはディレクトリを出力から除外することを指定します。

Exclude パラメーターを使用する場合、Path パラメーターの末尾のアスタリスク (*) は省略可能です。 たとえば、-Path C:\Test\Logs または -Path C:\Test\Logs\* です。

  • Path パラメーターに末尾のアスタリスク (*) が含まれていない場合は、Path パラメーターの内容が表示されます。 例外は、 Exclude パラメーターの値と一致するファイル名またはサブディレクトリ名です。
  • Path パラメーターに末尾のアスタリスク (*) が含まれている場合、コマンドは Path パラメーターのサブディレクトリに再帰します。 例外は、 Exclude パラメーターの値と一致するファイル名またはサブディレクトリ名です。
  • Recurse パラメーターがコマンドに追加された場合、Path パラメーターに末尾のアスタリスク (*) が含まれているかどうかにかかわらず、再帰出力は同じです。

例 6: レジストリ ハイブからレジストリ キーを取得する

この例では、 から HKEY_LOCAL_MACHINE\HARDWAREすべてのレジストリ キーを取得します。

Get-ChildItemは Path パラメーターを使用してレジストリ キー を指定しますHKLM:\HARDWARE。 Hive のパスとレジストリ キーの最上位レベルが PowerShell コンソールに表示されます。

詳細については、「 about_Registry_Provider」を参照してください。

Get-ChildItem -Path HKLM:\HARDWARE

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name             Property
----             --------
ACPI
DESCRIPTION
DEVICEMAP
RESOURCEMAP
UEFI

Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name                           Property
----                           --------
ACPI
RESOURCEMAP

最初のコマンドは、レジストリ キーの内容を HKLM:\HARDWARE 示します。 Exclude パラメーターは、 Get-ChildItemD*始まるサブキーを返さないよう指示します。 現在、 Exclude パラメーターはサブキーでのみ機能し、項目プロパティでは機能しません。

例 7: コード署名機関を使用してすべての証明書を取得する

この例では、コード署名機関を持つ PowerShell 証明書: ドライブ内の各証明書を取得します。

コマンドレットでは Get-ChildItemPath パラメーターを使用して Cert: プロバイダーを指定します。 Recurse パラメーターは、Path とそのサブディレクトリで指定されたディレクトリを検索します。 CodeSigningCert パラメーターは、コード署名機関を持つ証明書のみを取得します。

Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert

証明書プロバイダーと Cert: ドライブの詳細については、「 about_Certificate_Provider」を参照してください。

例 8: Depth パラメーターを使用して項目を取得する

次の使用例は、ディレクトリとそのサブディレクトリ内の項目を表示します。 Depth パラメーターは、再帰に含めるサブディレクトリ レベルの数を決定します。 空のディレクトリは出力から除外されます。

Get-ChildItem -Path C:\Parent -Depth 2

Directory: C:\Parent

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:24                SubDir_Level1
-a----        2/13/2019     08:55             26 file.txt

    Directory: C:\Parent\SubDir_Level1

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:24                SubDir_Level2
-a----        2/13/2019     08:55             26 file.txt

    Directory: C:\Parent\SubDir_Level1\SubDir_Level2

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:22                SubDir_Level3
-a----        2/13/2019     08:55             26 file.txt

コマンドレットではGet-ChildItem、Path パラメーターを使用して C:\Parent を指定します。 Depth パラメーターは、2 レベルの再帰を指定します。 Get-ChildItemには、Path パラメーターで指定されたディレクトリの内容と、2 つのレベルのサブディレクトリが表示されます。

例 9 - ジャンクション ポイントのリンク ターゲットを取得する

Windows コマンド シェルの コマンドは dir 、ファイルシステムジャンクション ポイントのターゲットの場所を示します。 PowerShell では、この情報は によってGet-ChildItem返されるファイルシステム オブジェクトの Target プロパティから入手できます。

PS D:\> New-Item -ItemType Junction -Name tmp -Target $env:TEMP
PS D:\> Get-ChildItem | select name,*target

Name     Target
----     ------
tmp      {C:\Users\user1\AppData\Local\Temp}

パラメーター

-Attributes

指定した属性のファイルとフォルダーを取得します。 このパラメーターはすべての属性をサポートします。複雑な属性の組み合わせを指定できます。

たとえば、暗号化または圧縮されている非システム ファイル (非ディレクトリ) を取得するには、次のように入力します。

Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed

一般的に使用される属性を持つファイルとフォルダーを検索するには、 Attributes パラメーターを使用します。 または、 パラメーター DirectoryFileHiddenReadOnlySystem です。

Attributes パラメーターは、次のプロパティをサポートしています。

  • Archive
  • Compressed
  • [デバイス]
  • ディレクトリ
  • Encrypted
  • [非表示]
  • IntegrityStream
  • 標準
  • NoScrubData
  • NotContentIndexed
  • オフライン
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • システム
  • 一時

これらの属性の詳細については、「 FileAttributes 列挙」を参照してください。

属性を結合するには、次の演算子を使用します。

  • ! (NOT)
  • + (AND)
  • , (OR)

演算子とその属性の間にスペースを使用しないでください。 スペースはコンマの後に指定できます。

一般的な属性の場合は、次の省略形を使用します。

  • D (ディレクトリ)
  • H (非表示)
  • R (読み取り専用)
  • S (システム)
Type:FlagsExpression<T>[FileAttributes]
Accepted values:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Depth

このパラメーターは PowerShell 5.0 で追加され、再帰の深さを制御できます。 既定では、 Get-ChildItem は親ディレクトリの内容を表示します。 Depth パラメーターは、再帰に含まれるサブディレクトリ レベルの数を決定し、内容を表示します。

たとえば、 には、 Depth 2Path パラメーターのディレクトリ、サブディレクトリの第 1 レベル、サブディレクトリの 2 番目のレベルが含まれます。 既定では、ディレクトリ名とファイル名が出力に含まれます。

注意

PowerShell または cmd.exeの Windows コンピューターでは、 tree.com コマンドを使用してディレクトリ構造のグラフィカル ビューを表示できます。

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Directory

ディレクトリの一覧を取得するには、 Directory パラメーターまたは Attributes パラメーターを Directory プロパティと共に使用します。 Recurse パラメーターは、Directory と共に使用できます。

Type:SwitchParameter
Aliases:ad, d
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

コマンドレットが子項目を取得する際に一致する 1 つ以上の文字列パターンの配列を指定します。 一致する項目はすべて出力から除外されます。 や などの *.txt パス要素またはパターンを入力します A*。 ワイルドカード文字を使用できます。

Path パラメーターの末尾のアスタリスク (*) は省略可能です。 たとえば、-Path C:\Test\Logs または -Path C:\Test\Logs\* です。 末尾のアスタリスク (*) が含まれている場合、コマンドは Path パラメーターのサブディレクトリに再帰します。 アスタリスク (*) を指定しないと、 Path パラメーターの内容が表示されます。 詳細については、「例 5」と「メモ」セクションを参照してください。

Include パラメーターと Exclude パラメーターを組み合わせて使用できます。 ただし、除外は包含の後に適用され、最終的な出力に影響を与える可能性があります。

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-File

ファイルの一覧を取得するには、 File パラメーターを使用します。 Recurse パラメーターは File と共に使用できます。

Type:SwitchParameter
Aliases:af
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターをサポートする唯一のインストール済み PowerShell プロバイダーです。 フィルターは、他のパラメーターよりも効率的です。 プロバイダーは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにフィルターを適用します。 フィルター文字列は.NET API に渡され、ファイルを列挙します。 API では、 *? ワイルドカードのみがサポートされています。

Type:String
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Force

非表示のファイルやシステム ファイルなど、ユーザーがアクセスできない項目をコマンドレットで取得できるようにします。 Force パラメーターは、セキュリティ制限をオーバーライドしません。 実装はプロバイダーごとに異なります。 詳細については、「about_Providers」を参照してください。

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Hidden

非表示のアイテムのみを取得するには、 Hidden パラメーターまたは Attributes パラメーターを Hidden プロパティと共に使用します。 既定では、 Get-ChildItem では非表示のアイテムは表示されません。 Force パラメーターを使用して非表示のアイテムを取得します。

Type:SwitchParameter
Aliases:ah, h
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Include

コマンドレットが子項目を取得する際に一致する 1 つ以上の文字列パターンの配列を指定します。 一致するすべての項目が出力に含まれます。 などのパス要素またはパターンを "*.txt"入力します。 ワイルドカード文字を使用できます。 Include パラメーターは、コマンドに などのC:\Windows\*項目の内容が含まれている場合にのみ有効です。ワイルドカード文字はディレクトリの内容をC:\Windows指定します。

Include パラメーターと Exclude パラメーターを組み合わせて使用できます。 ただし、除外は包含の後に適用され、最終的な出力に影響を与える可能性があります。

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

1 つ以上の場所へのパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように PowerShell に指示します。

詳細については、「 about_Quoting_Rules」を参照してください。

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Name

場所内の項目の名前のみを取得します。 出力は、パイプラインを他のコマンドに送信できる文字列オブジェクトです。 返される名前は、 Path パラメーターの値に対する相対的な名前です。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Path

1 つ以上の場所へのパスを指定します。 ワイルドカードを使用できます。 既定の場所は現在のディレクトリ (.) です。

Type:String[]
Position:0
Default value:Current directory
Accept pipeline input:True
Accept wildcard characters:True

-ReadOnly

読み取り専用アイテムのみを取得するには、 ReadOnly パラメーターまたは Attributes パラメーター ReadOnly プロパティを使用します。

Type:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

指定された場所にある項目と、その場所のすべての子項目にある項目を取得します。

Type:SwitchParameter
Aliases:s
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-System

システム ファイルとディレクトリのみを取得します。 システム ファイルとフォルダーのみを取得するには、 System パラメーターまたは Attributes パラメーター System プロパティを使用します。

Type:SwitchParameter
Aliases:as
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「about_Transactions」を参照してください。

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

入力

String

このコマンドレットへのパスを含む文字列をパイプできます。

出力

AliasInfo

コマンドレットは、ドライブにアクセスするときにこの種類を Alias: 出力します。

X509StoreLocation

X509Store

X509Certificate2

コマンドレットは、ドライブにアクセスするときにこれらの型を Cert: 出力します。

DictionaryEntry

コマンドレットは、ドライブにアクセスするときにこの種類を Env: 出力します。

DirectoryInfo

FileInfo

コマンドレットは、ファイルシステム ドライブにアクセスするときに、これらの型を出力します。

FunctionInfo

FilterInfo

コマンドレットは、ドライブにアクセスするときにこれらの型を Function: 出力します。

RegistryKey

コマンドレットは、レジストリ ドライブにアクセスするときにこの種類を出力します。

PSVariable

コマンドレットは、ドライブにアクセスするときにこの種類を Variable: 出力します。

Microsoft.WSMan.Management.WSManConfigContainerElement

Microsoft.WSMan.Management.WSManConfigLeafElement

コマンドレットは、ドライブにアクセスするときにこれらの型を WSMan: 出力します。

String

Name パラメーターを使用すると、このコマンドレットはオブジェクト名を文字列として返します。

メモ

Windows PowerShellには、 の次のエイリアスがGet-ChildItem含まれています。

  • ls
  • dir
  • gci

Get-ChildItem では、既定では非表示のアイテムは取得されません。 隠し項目を取得するには、Force パラメーターを使用します。

コマンドレットは Get-ChildItem 、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用できるプロバイダーを一覧表示するには、「」と入力します Get-PSProvider。 詳細については、「about_Providers」を参照してください。