LoginSignup
3
1

treeコマンドで階層指定できない(なんとかしました)

Posted at

treeコマンドは階層指定できない。

そのオプションも驚くほど少ない。

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

treeコマンドをそのまま打つととことん深層まで掘り下って全部表示するので、フォルダ構造が複雑かつ大量だとやたら時間もかかるし、アウトプットされたツリー表示もそのままでは使ものにならない。

解決方法

findstrコマンドにパイプでつないで以下のように力技。

  • 2階層まで表示
tree | findstr /R /C:"^├" /C:"^│  ├" /C:"^│  └" /C:"^└"
  • 3階層まで表示
tree | findstr /R /C:"^├" /C:"^│  ├" /C:"^│  └" /C:"^│      ├─" /C:"^│      └─" /C:"^└"

実行例(3階層まで表示):

C:\Users\atyah\Git>tree | findstr /R /C:"^├" /C:"^│  ├" /C:"^│  └" /C:"^│      ├─" /C:"^│      └─" /C:"^└"
├─ameblo_auto_iine
│  └─node_modules
│      ├─.bin
│      ├─agent-base
│      ├─async-limiter
│      ├─balanced-match
│      ├─brace-expansion
│      ├─buffer-from
│      ├─concat-map
│      ├─concat-stream
│      ├─core-util-is
│      ├─debug
│      ├─delay
│      ├─dotenv
│      ├─es6-promise
│      ├─es6-promisify
│      ├─extract-zip
│      ├─fd-slicer
│      ├─fs.realpath
│      ├─glob
│      ├─https-proxy-agent
│      ├─inflight
│      ├─inherits
│      ├─isarray
│      ├─mime
│      ├─minimatch
│      ├─minimist
│      ├─mkdirp
│      ├─ms
│      ├─once
│      ├─path-is-absolute
│      ├─pend
│      ├─process-nextick-args
│      ├─progress
│      ├─proxy-from-env
│      ├─puppeteer
│      ├─readable-stream
│      ├─rimraf
│      ├─safe-buffer
│      ├─string_decoder
│      ├─typedarray
│      ├─util-deprecate
│      ├─wrappy
│      ├─ws
│      └─yauzl
├─benzofaq(フォーラム)
├─benzoinfojapan
│  ├─.cache
│  ├─.firebase
│  ├─BIJsite_ver2.5
│  ├─node_modules
│  ├─public
│  ├─src
│  └─static
│      ├─icons
│      ├─pdf
│      ├─sound
│      └─twitterimg
├─BIJ_faq
│  ├─.firebase
│  ├─.vscode
│  ├─dist
│  ├─e2e
│  ├─functions
│  ├─node_modules
│  └─src
│      ├─app
│      ├─assets
│      └─environments
├─Codestep―学習サイト_WordPress
│  ├─HTMLCSS コーディング練習
│  └─バックアップ
├─docker-volumes
│  └─course38
├─portfolio-ポートフォリオサイト
│  ├─portfolio-web
│  ├─ダイアグラム図
│  ├─動画
│  └─画像
├─test-ナビゲーションバー(YouTubeより)
├─twitter-unfollowers
│  └─data
├─Udemy-docker
│  ├─copy
│  ├─docker-compose
│  ├─env
│  ├─mariadb
│  ├─run
│  └─test
├─UdemyーAIチャットアプリwithNext.jsとFirebase
│  └─ai-chatapp
│      ├─.firebase
│      ├─.next
│      ├─node_modules
│      ├─out
│      ├─public
│      └─src
├─UdemyーAWSフルスタック
│  └─todoApp
│      ├─client
│      └─server
├─UdemyーNext.js13とSpabaseでブログ
│  └─next.js13-tailwindcss-udemy
│      ├─.next
│      ├─public
│      └─src
├─UdemyーReact/Redux/TypeScript/Firebaseで作るアプリ
│  └─udemy-discord-clone
│      ├─.firebase
│      ├─build
│      ├─node_modules
│      ├─public
│      └─src
├─UdemyーRedux完全入門
│  ├─first-redux-app
│  └─redux-shoppingcart-app
│      ├─node_modules
│      ├─public
│      └─src
├─UdemyーTypeScript入門講座(タイパ重視)
│  └─TypeScript
│      ├─react-typescript
│      ├─Section1
│      ├─Section2
│      └─Section3
├─Udemyーちゃんと学ぶWordPress
│  ├─セクション3ーテーマ
│  ├─セクション4ーBlog
│  ├─セクション5ー移行
│  └─セクション6ーカスタマイズ
├─Udemy-HTML,CSS中上級コース
│  ├─Resources_GridLayout
│  ├─Resources_疑似要素
│  ├─Resources_セクション3(ヘッダーポジション、ハンバーガーメニュー、スライド)
│  ├─Resources_セクション4(メディアクエリ)
│  ├─Resources_セクション5(フクロウページ完成)
│  ├─Resources_セクション6~
│  └─Resources_セクション8(PCサイズレスポンシブ)
│      ├─Sample
│      └─Training
└─Udemy-PHP2ちゃんねる掲示板

以上。


※ これがしたかった理由(ワケ)は、C:\Users\atyah\Gitフォルダ配下のすべてをnode_modulesフォルダを除外して、Git_backupフォルダにコピーしたかったから。

Pythonで作ったコピーコマンドは次の記事に紹介してます。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1