Windowsのtreeコマンドで3階層目までだけを表示する簡単な方法
2022年07月29日
連載してきたtreeコマンドについて今回でラスト。
目次
①Windowsのtreeコマンドで3階層目までだけを表示する方法
②3階層目までだけを表示するtreeコマンドを生成するVBScript
③3階層目までだけを表示する自作コマンドtree3.batを作ってみた
④Windowsのtreeコマンドで3階層目までだけを表示する簡単な方法(今回)
treeコマンドの結果に対して、findstrの正規表現を使って、
1~3階層に該当する文字列を取得してきた。
そう。正規表現。
今まで、コマンドを横に並べて書いていたせいで気づかなかった。
もっと簡単な正規表現があるじゃんか!
目次
①Windowsのtreeコマンドで3階層目までだけを表示する方法
②3階層目までだけを表示するtreeコマンドを生成するVBScript
③3階層目までだけを表示する自作コマンドtree3.batを作ってみた
④Windowsのtreeコマンドで3階層目までだけを表示する簡単な方法(今回)
treeコマンドの結果に対して、findstrの正規表現を使って、
1~3階層に該当する文字列を取得してきた。
そう。正規表現。
今まで、コマンドを横に並べて書いていたせいで気づかなかった。
もっと簡単な正規表現があるじゃんか!
全角文字の任意の1文字は..で表現するらしい。
これを踏まえて、1階層から3階層の出力結果の正規表現は以下の通り。
1階層目
/C:"^..─"
2階層目
/C:"^.. ..─"
3階層目
/C:"^.. .. ..─"
コマンド
tree [パス]| findstr /R /C:"^..─" /C:"^.. ..─" /C:"^.. .. ..─"
結局辞書登録できるじゃん・・・。
厳密さは少し劣るけど、フォルダ名に─(けいせん)は使わないでしょ。
4層目はパターン多すぎてやる気にならないけど、
以下コマンドで取れそうね。
tree [パス]| findstr /R /C:"^..─" /C:"^.. ..─" /C:"^.. .. ..─" /C:"^.. .. .. ..─"
※2023/3/27追記 HTMLでは、連続スペースを無視するため表現できずコマンドが間違っていました。
検索対象の絶対パスを[フォルダパス]として コマンドファイルのとおり。
PR
Comment