次の方法で共有


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 サブディレクトリを検索します。 Force パラメーターには、hモードの hiddenfile.txt などの隠しファイル 表示されます。

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

この例では、Get-ChildItemInclude パラメーターを使用して、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

コマンドレットは、Path パラメーターを使用して、C:\Testディレクトリを指定します。 Path パラメーターには、ディレクトリの内容を指定する末尾のアスタリスク (*) ワイルドカードが含まれています。 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ディレクトリの内容を示しています。 出力は、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-ChildItem コマンドレットでは、Path パラメーターを使用して、ディレクトリ C:\Test\Logsを指定します。 Exclude パラメーターでは、アスタリスク () ワイルドカードを使用して、A で始まるファイルまたはディレクトリを指定するか、 出力から除外します。

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

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

パラメーター

-Attributes

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

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

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

よく使用される属性を持つファイルとフォルダーを検索するには、Attributes パラメーターを使用します。 または、ディレクトリ、ファイル非表示ReadOnly、および Systemのパラメーター します。

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 パラメーターを修飾します。 *.txtA*などのパス要素またはパターンを入力します。 ワイルドカード文字を使用できます。

* パラメーターの末尾のアスタリスク () は省略可能です。 たとえば、-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

入力

String

Get-ChildItemへのパスを含む文字列をパイプ処理できます。

出力

Object

Get-ChildItem 返されるオブジェクトの種類は、プロバイダー ドライブ パス内のオブジェクトによって決まります。

String

Name パラメーターを使用すると、Get-ChildItem はオブジェクト名を文字列として返します。

メモ

  • 組み込みのエイリアス、Get-ChildItemls、および dirによって gci を参照できます。 詳細については、about_Aliasesを参照してください。
  • Get-ChildItem は、既定では非表示のアイテムを取得しません。 非表示のアイテムを取得するには、Force パラメーターを使用します。
  • Get-ChildItem コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider」と入力します。 詳細については、about_Providersを参照してください。