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-ChildItem
コマンドに Depth または Recurse パラメーターが含まれている場合、空のディレクトリは出力に含まれません。
場所は、PowerShell プロバイダーによって Get-ChildItem
に公開されます。 場所には、ファイル システム ディレクトリ、レジストリ ハイブ、または証明書ストアを指定できます。 詳細については、about_Providersを参照してください。
例
例 1: ファイル システム ディレクトリから子項目を取得する
この例では、ファイル システム ディレクトリから子項目を取得します。 ファイル名とサブディレクトリ名が表示されます。 空の場所の場合、コマンドは出力を返せず、PowerShell プロンプトに戻ります。
Get-ChildItem
コマンドレットでは、Path パラメーターを使用して、ディレクトリ C:\Test
を指定します。
Get-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-ChildItem
コマンドレットでは、Path パラメーターを使用して、ディレクトリ C:\Test
を指定します。
Name パラメーターは、指定したパスのファイル名またはディレクトリ名のみを返します。
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
を指定します。
パス では、アスタリスク (*
) ワイルドカードを使用して、ファイル名拡張子が .txtのすべてのファイルを指定します。
Recurse パラメーターは、「Directory: 見出し」に示すように、Path サブディレクトリを検索します。
例 4: Include パラメーターを使用して子項目を取得する
この例では、Get-ChildItem
Include パラメーターを使用して、Path パラメーターで指定されたディレクトリから特定の項目を検索します。
# When using the -Include parameter, if you do not 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
*
) ワイルドカードが含まれています。
Include パラメーターでは、アスタリスク (*
) ワイルドカードを使用して、ファイル名拡張子 .txtを持つすべてのファイルを指定します。
Include パラメーターを使用する場合、Path パラメーターには、ディレクトリの内容を指定するために末尾のアスタリスク (*
) ワイルドカードが必要です。 たとえば、-Path C:\Test\*
のようにします。
- コマンドに Recurse パラメーターを追加した場合、
*
パラメーターの末尾のアスタリスク () は省略可能です。 Recurse パラメーターは、Path ディレクトリとそのサブディレクトリから項目を取得します。 たとえば、-Path C:\Test\ -Recurse -Include *.txt
のように指定します。 -
*
パラメーターに末尾のアスタリスク () が含まれていない場合、コマンドは出力を返せず、PowerShell プロンプトに戻ります。 たとえば、-Path C:\Test\
のようにします。
例 5: Exclude パラメーターを使用して子項目を取得する
この例の出力は、C:\Test\Logs
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-ChildItem
コマンドレットでは、Path パラメーターを使用して、ディレクトリ C:\Test\Logs
を指定します。
Exclude パラメーターを使用する場合、*
パラメーターの末尾のアスタリスク () は省略可能です。 たとえば、-Path C:\Test\Logs
または -Path C:\Test\Logs\*
です。
-
*
パラメーターに末尾のアスタリスク () が含まれていない場合は、Path パラメーターの内容が表示されます。 例外は、Exclude パラメーターの値と一致するファイル名またはサブディレクトリ名。 -
*
パラメーターに末尾のアスタリスク () が含まれている場合、コマンド Path パラメーターのサブディレクトリに が繰り返されます。 例外は、Exclude パラメーターの値と一致するファイル名またはサブディレクトリ名。 -
Recurse パラメーターがコマンドに追加された場合、再帰出力は、Path パラメーターに末尾のアスタリスク (
*
) が含まれているかどうかに関係なく同じです。
例 6: レジストリ ハイブからレジストリ キーを取得する
このコマンドは、HKEY_LOCAL_MACHINE\HARDWARE
レジストリ キーからすべてのレジストリ キーを取得します。
Get-ChildItem
では、Path パラメーターを使用して、レジストリ キーの HKLM:\HARDWARE
を指定します。 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-ChildItem
で始まるサブキーを返さないよう D*
に指示します。 現時点では、Exclude パラメーターは、項目プロパティではなくサブキーでのみ機能します。
例 7: コード署名機関を使用してすべての証明書を取得する
このコマンドは、コード署名機関を持つ PowerShell 証明書: ドライブ内の各証明書を取得します。
Get-ChildItem
コマンドレットでは、Path パラメーターを使用して、証明書: プロバイダーを指定します。
Recurse パラメーターは、パス で指定されたディレクトリおよびそのサブディレクトリを検索します。
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 パラメーターで指定されたディレクトリの内容と、2 つのレベルのサブディレクトリが表示されます。
パラメーター
-Attributes
指定した属性を持つファイルとフォルダーを取得します。 このパラメーターはすべての属性をサポートし、属性の複雑な組み合わせを指定できます。
たとえば、暗号化または圧縮されたシステム以外のファイル (ディレクトリではない) を取得するには、次のように入力します。
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
よく使用される属性を持つファイルとフォルダーを検索するには、Attributes パラメーターを使用します。 または、ディレクトリ、
Attributes パラメーターは、次のプロパティをサポートしています。
- アーカイブ
- 圧縮
- デバイス
- ディレクトリ
- 暗号化
- 隠れた
- 整合性ストリーム
- 標準
- NoScrubData (英語)
- NotContentIndexed(コンテンツインデックスなし)
- オフライン
- ReadOnly
- 再解析ポイント
- スパースファイル
- システム
- 一時的
これらの属性の詳細については、FileAttributes 列挙を参照してください。
属性を結合するには、次の演算子を使用します。
-
!
(ない) -
+
(および) -
,
(または)
演算子とその属性の間にスペースを使用しないでください。 スペースはコンマの後に指定できます。
一般的な属性の場合は、次の省略形を使用します。
-
D
(ディレクトリ) -
H
(非表示) -
R
(読み取り専用) -
S
(システム)
型: | FlagsExpression<T>[FileAttributes] |
指定可能な値: | Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Depth
このパラメーターは PowerShell 5.0 で追加され、再帰の深さを制御できます。 既定では、Get-ChildItem
は親ディレクトリの内容を表示します。
Depth パラメーターは、再帰に含まれるサブディレクトリ レベルの数を決定し、内容を表示します。
たとえば、Depth 2
には、Path パラメーターのディレクトリ、第 1 レベルのサブディレクトリ、および第 2 レベルのサブディレクトリが含まれます。 デフォルトでは、ディレクトリ名とファイル名が出力に含まれます。
注
PowerShell または cmd.exeの Windows コンピューターでは、tree.com コマンドを使用してディレクトリ構造のグラフィカル ビューを表示できます。
型: | UInt32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Directory
ディレクトリの一覧を取得するには、Directory パラメーターまたは Attributes パラメーターと Directory プロパティを使用します。 Recurse パラメーターは、Directoryで使用できます。
型: | SwitchParameter |
Aliases: | ad, d |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Exclude
文字列配列として、このコマンドレットが操作から除外するプロパティまたはプロパティを指定します。
このパラメーターの値は、Path パラメーターを修飾します。
*.txt
や A*
などのパス要素またはパターンを入力します。 ワイルドカード文字を使用できます。
*
パラメーターの末尾のアスタリスク () は省略可能です。 たとえば、-Path C:\Test\Logs
または -Path C:\Test\Logs\*
です。 末尾のアスタリスク (*
) が含まれている場合、コマンドは Path パラメーターのサブディレクトリに再帰します。 アスタリスク (*
) を指定しないと、Path パラメーターの内容が表示されます。 詳細については、例 5 と「メモ」セクションを参照してください。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-File
ファイルの一覧を取得するには、File パラメーターを使用します。 Recurse パラメーターは、Fileと共に使用できます。
型: | SwitchParameter |
Aliases: | af |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Filter
Path パラメーターを修飾するフィルターを指定します。
FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。 ファイルを列挙するために、フィルター文字列が .NET API に渡されます。 その API では、ワイルドカードの *
と ?
のみがサポートされます。
型: | String |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Force
非表示ファイルやシステム ファイルなど、ユーザーがアクセスできない項目をコマンドレットで取得できるようにします。 Force パラメーターは、セキュリティ制限をオーバーライドしません。 実装はプロバイダーによって異なります。 詳細については、about_Providersを参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Hidden
非表示のアイテムのみを取得するには、Hidden パラメーターまたは Attributes パラメーターを使用して、Hidden プロパティを使用します。 既定では、Get-ChildItem
には非表示の項目は表示されません。 非表示のアイテムを取得するには、Force パラメーターを使用します。
型: | SwitchParameter |
Aliases: | ah, h |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Include
文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターン ("*.txt"
など) を入力します。 ワイルドカード文字を使用できます。
Include パラメーターは、コマンドに項目の内容 (ワイルドカード文字が C:\Windows\*
ディレクトリの内容を指定する C:\Windows
など) が含まれている場合にのみ有効です。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-LiteralPath
1 つ以上の場所へのパスを指定します。 LiteralPath の値は、入力されたとおりにそのまま使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
詳細については、about_Quoting_Rulesを参照してください。
型: | String[] |
Aliases: | PSPath |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
場所内の項目の名前のみを取得します。 出力は、パイプラインを他のコマンドに送信できる文字列オブジェクトです。 ワイルドカードを使用できます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Path
1 つ以上の場所へのパスを指定します。 ワイルドカードを使用できます。 既定の場所は現在のディレクトリ (.
) です。
型: | String[] |
配置: | 0 |
規定値: | Current directory |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-ReadOnly
読み取り専用アイテムのみを取得するには、ReadOnly パラメーターまたは Attributes パラメーター ReadOnly プロパティを使用します。
型: | SwitchParameter |
Aliases: | ar |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Recurse
指定した場所およびその場所内のすべての子項目から項目を取得します。
型: | SwitchParameter |
Aliases: | s |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-System
システム ファイルとディレクトリのみを取得します。 システム ファイルとフォルダーのみを取得するには、System パラメーターまたは Attributes パラメーター System プロパティを使用します。
型: | SwitchParameter |
Aliases: | as |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseTransaction
アクティブなトランザクションにコマンドを含みます。 このパラメーターは、トランザクションが進行中の場合にのみ有効です。 詳細については、about_Transactionsを参照してください。
型: | SwitchParameter |
Aliases: | usetx |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
Get-ChildItem
へのパスを含む文字列をパイプ処理できます。
出力
Get-ChildItem
返されるオブジェクトの種類は、プロバイダー ドライブ パス内のオブジェクトによって決まります。
Name パラメーターを使用すると、Get-ChildItem
はオブジェクト名を文字列として返します。
メモ
- 組み込みのエイリアス、
Get-ChildItem
、ls
、およびdir
によってgci
を参照できます。 詳細については、about_Aliasesを参照してください。 -
Get-ChildItem
は、既定では非表示のアイテムを取得しません。 非表示のアイテムを取得するには、Force パラメーターを使用します。 -
Get-ChildItem
コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider
」と入力します。 詳細については、about_Providersを参照してください。