🌲
Windowsのtreeで階層を指定したい
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