Get-ChildItem コマンドレットの概要
Get-ChildItem は、PowerShell でディレクトリ内のファイルやサブフォルダーを取得するための基本コマンドです。Unix 系の ls や Windows の dir に相当しますが、オブジェクト指向で結果がオブジェクトとして返るため、後続のパイプライン処理が非常に柔軟に行えます。
-Path パラメーターの役割
-Path パラメーターは、取得対象となるパス(ファイルシステム、レジストリ、証明書ストアなど)を指定します。省略した場合はカレントディレクトリが対象になります。
- 絶対パス(例:
C:\Users\User\Documents) - 相対パス(例:
.\Logs) - ワイルドカード(例:
*.txt) - プロバイダー指定(例:
Registry::HKEY_CURRENT_USER\Software)
基本的な使用例
以下は最もシンプルな例です。カレントディレクトリ内のすべての項目を取得します。
Get-ChildItem
特定のパスを指定する場合は -Path を明示的に書きます。
Get-ChildItem -Path "C:\Program Files"
サブディレクトリも再帰的に取得
サブフォルダー以下も含めて全て取得したいときは -Recurse を組み合わせます。
Get-ChildItem -Path "C:\Logs" -Recurse
特定の拡張子だけを取得
ワイルドカードを使って *.log ファイルだけを取得する例です。
Get-ChildItem -Path "C:\Logs" -Filter "*.log"
よく使われるオプションとの組み合わせ
- -File : ファイルのみを対象にする。
- -Directory : フォルダーのみを対象にする。
- -Hidden : 隠し属性の項目も含める。
- -Force : システムや隠し属性の項目も取得する。
例:隠しファイルを含むすべての .config ファイルを取得する。
Get-ChildItem -Path "C:\Config" -Filter "*.config" -Force
パイプラインでの活用例
取得したオブジェクトをさらに絞り込んだり、別のコマンドに渡すことができます。
# 1MB 以上のファイルだけを抽出
Get-ChildItem -Path "C:\Data" -Recurse | Where-Object { $_.Length -gt 1MB }
# 取得したファイルを削除(要注意)
Get-ChildItem -Path "C:\Temp" -File | Remove-Item -Force
まとめ
Get-ChildItem -Path は、PowerShell でファイルシステムやその他のプロバイダーを操作する際の土台となるコマンドです。パス指定の柔軟性と、他のオプション・パイプラインと組み合わせた高度な処理が可能になるため、日常的な管理作業から高度なスクリプト作成まで幅広く活用できます。