🌲

Windowsのtreeで階層を指定したい

2025/02/20に公開

Windowsのtreeで階層を指定したい

WindowsのPowershellのtreeコマンドで階層を指定したいのだが、このコマンドには階層を指定するオプションがない。

/F   各フォルダーのファイル名を表示します。
/A   拡張文字ではなく、ASCII 文字で表示します。

そこで、この方法を使って実現する。

方法

1階層の場合:

tree | findstr /R /C:"^├" /C:"^└"

2階層の場合:

tree | findstr /R /C:"^├" /C:"^│  ├" /C:"^│  └" /C:"^└"

3階層の場合:

tree | findstr /R /C:"^├" /C:"^│  ├" /C:"^│  └" /C:"^│      ├─" /C:"^│      └─" /C:"^└"

仕組み

findstrでtreeの出力を処理する。
/Rで正規表現を使う。
/Cで指定した文字列が行に含まれるならその行が表示される。

例:

  • /C:"^├" => がその行に含まれるならその行が表示される。
  • /C:"^└" => がその行に含まれるならその行が表示される。
  • /C:"^│ ├" => │ ├がその行に含まれるならその行が表示される。
  • /C:"^│ └" => │ └がその行に含まれるならその行が表示される。

Discussion