もくじ
📝 はじめに
PowerShellでファイルやフォルダを調べていると、
「フォルダ配下のファイル情報をまとめて確認したい」
「1つのファイルだけ詳しく見たい」
「Get-Item と Get-ChildItem、どっちを使えばいいの?」
と迷うことはありませんか?
PowerShellでは
Get-Item と
Get-ChildItem を
正しく使い分けることで、
単体の情報取得と複数項目の情報取得を
効率よく行えます。
- フォルダ内のファイル情報を一覧で取得したい
- 特定のファイルだけ詳細を確認したい
- 情報取得コマンドの使い分けを理解したい
✅ この操作でできること(要点)
- 複数項目の情報をまとめて取得できる
- 1項目だけを正確に取得できる
- 用途に応じてコマンドを使い分けられる
- 取得した情報を後続処理に渡せる
✅ Get-Item と Get-ChildItem の役割の違い
まずは、それぞれの役割をシンプルに整理してみましょう。
指定したパスに対応する1つの項目の情報を取得します。
ファイル・フォルダ・レジストリキーなど、
「このパスそのもの」を確認したいときに使います。
指定した場所の配下にある複数の項目を取得します。
フォルダ内のファイル一覧や、
再帰的な情報取得に向いています。
🧩 基本構文
🔹 Get-Item
Get-Item パス
🔹 Get-ChildItem
Get-ChildItem パス
▶ 基本的な使い分け(まずこれだけ)
🔹 単体のファイル情報を取得したい場合
Get-Item C:\Work\sample.txt
ファイルサイズ、更新日時、属性など、
そのファイル自身の情報が取得されます。
🔹 フォルダ内のファイルをまとめて取得したい場合
Get-ChildItem C:\Work
C:\Work フォルダ配下にある
ファイル・フォルダが一覧で取得されます。
🛠 よく使われる指定例
🔹 複数ファイルのサイズを確認する
Get-ChildItem C:\Logs -File |
Select-Object Name, Length, LastWriteTime
フォルダ内の複数ファイルについて、
サイズや更新日時を一覧で確認できます。
🔹 取得した複数項目を個別に処理する
Get-ChildItem C:\Work -File |
ForEach-Object {
Get-Item $_
}
一覧取得 → 個別処理、という流れで使い分ける例です。
💼 実務でよく使う使用例(応用)
🔹 条件に合う複数ファイルの情報を取得
Get-ChildItem C:\Logs -File |
Where-Object { $_.Extension -eq ".log" } |
Select-Object Name, Length
🔹 取得した1項目の詳細プロパティを確認
$item = Get-Item C:\Work\config.json
$item | Format-List *
- Get-ChildItem で一覧取得
- Where-Object で絞り込み
- Get-Item で個別詳細確認
🧩 よくある勘違い・つまずきポイント
- Get-Item は複数項目を一度に取得できない
- Get-ChildItem は「指定パスそのもの」ではなく「中身」を取得する
- フォルダの中身を Get-Item で取ろうとしてエラーになる
- ワイルドカードの挙動が異なる場合がある
- 用途を混同すると結果が分かりにくくなる
🔄 cmdとの違いについて
cmd では dir 1つで済ませがちですが、
PowerShell では
「単体取得」と「一覧取得」を
明確に分けて考えるのが特徴です。
その分、スクリプトでは安全で分かりやすい処理が書けます。
⚠ エラー・うまく動かないときの確認ポイント
- 取得したいのが「1項目」か「複数項目」か
- 指定したパスが正しいか
- フォルダの中身を取得しようとしていないか
- アクセス権限があるか
🧠 注意点
迷ったときは、
「そのパスそのものを見たい → Get-Item」
「中に何があるか見たい → Get-ChildItem」
と考えると判断しやすくなります。
📌 まとめ
- Get-Item は1項目の情報取得用
- Get-ChildItem は複数項目の一覧取得用
- 役割を分けて使うと理解しやすい
- 組み合わせることで柔軟な処理が可能
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイル情報をまとめて取得したい
- フォルダ内の一覧を確認したい
- 単体のファイル情報を確認したい
- 条件付きで情報を取得したい
- エラーや実行できない原因を調べたい
- ファイル操作を自動化したい
- 安全に情報を取得したい
