Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】ディレクトリを再帰的に検索する

Get-ChildItemコマンドレットを使う。-Recurseに検索をしたいディレクトリを、その後に探したいディレクトリ名を指定する。ディレクトリ名にはワイルドカードが使える。

> Get-ChildItem -Recurse C:\Windows\Boot EFI
    ディレクトリ: C:\Windows\Boot
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/05/22     20:37                EFI
    ディレクトリ: C:\Windows\Boot\DVD
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2022/05/07     14:24                EFI

デフォルトではファイルとディレクトリの両方を検索する。ディレクトリはPsIsContainerプロパティがTrueになるため、ディレクトリだけを検索したければ、以下のようにする。

PS > Get-ChildItem -Recurse C:\Windows\Boot EFI | ? {$_.PsIsContainer}
    ディレクトリ: C:\Windows\Boot
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/05/22     20:37                EFI
    ディレクトリ: C:\Windows\Boot\DVD
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2022/05/07     14:24                EFI

以下のようにすればファイルだけ検索するため、上記で指定のファイル(EFI)は存在しないため、何も表示されなくなる。

PS > Get-ChildItem -Recurse C:\Windows\Boot EFI | ? {!$_.PsIsContainer}
PS >