PowerShell: Get-ItemとGet-ChildItemの違い
PowerShellのコマンドレットに「Get-Item」と「Get-ChildItem」があります。 似ているようで違う2つのコマンドレットの違いについて解説します。
コマンドレット | 概要 |
---|---|
Get-Item | アイテムを取得 |
Get-ChildItem | 子アイテムを取得 |
Get-ItemとGet-ChildItemの違いを抑えるためには、 Item(アイテム)とChildItem(子アイテム)の違いを知る必要があります。
アイテムとはファイルやフォルダの事です。 子アイテムとはフォルダの下にあるファイルやサブフォルダの事です (説明をわかりやすくするために、 レジストリキーやレジストリサブキーについては省略します)。
下のツリー図のようにアイテムの下に子アイテムがあります。
アイテム(コンテナ) ├ 子アイテム └ 子アイテム
Get-Itemはアイテムそのものを取得するので、
-Pathとして指定するパスはフォルダやファイルになります。
以下はGet-Itemの実行例です。
指定したアイテム(この場合はファイル)の情報が取得できます。
PS D:\test\powershell> Get-Item test1.ps1 Directory: D:\test\powershell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2022/04/18 4:12 23 test1.ps1
一方、Get-ChildItemは子アイテムを取得するので、
指定するパスはフォルダ(親フォルダ)になります。
以下はGet-ChildItemで実行例です。
指定したフォルダ(この場合はカレントディレクトリ)に含まれる
フォルダやファイルの情報が取得できます。
PS D:\test\powershell> Get-ChildItem . Directory: D:\test\powershell Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2022/02/14 3:11 f1 -a--- 2022/02/18 4:08 17 test.txt -a--- 2022/04/18 4:12 23 test1.ps1
このように、 ファイルやフォルダ等のアイテムそのものの情報を知りたい場合はGet-Itemを使用し、 フォルダに含まれるサブフォルダやファイルの一覧情報を知りたい場合は Get-ChildItemを使います。
アイテムそのものの情報(プロパティ)を知りたいという機会は あまりないでしょうから、 Get-ItemよりもGet-ChildItemの方が使用頻度は高くなります。