Windowsのtreeコマンドで3階層目までだけを表示する方法
2022年07月25日
他人が作ったフォルダ構成ってわけがわかんねぇ。
力技をする人ほどその傾向が強くていやになっちゃう。
構成を把握するためにtreeコマンドを実行したものの
階層がばらばらでフォルダ数が多すぎて訳が分からん。
で、treeコマンドについてネットで調べながら試行錯誤してみて
いろいろわかってきたので、今回からtreeコマンドについて連載。
目次
①Windowsのtreeコマンドで3階層目までだけを表示する方法(今回)
②3階層目までだけを表示するtreeコマンドを生成するVBScript
③3階層目までだけを表示する自作コマンドtree3.batを作ってみた
④Windowsのtreeコマンドで3階層目までだけを表示する簡単な方法
※2023/11/14追記 でかいフォルダでも軽快に動作する別バージョンを作ってみました。
⑤高速に3階層分のtreeコマンドと同じ結果を取るバッチファイル
力技をする人ほどその傾向が強くていやになっちゃう。
構成を把握するためにtreeコマンドを実行したものの
階層がばらばらでフォルダ数が多すぎて訳が分からん。
で、treeコマンドについてネットで調べながら試行錯誤してみて
いろいろわかってきたので、今回からtreeコマンドについて連載。
目次
①Windowsのtreeコマンドで3階層目までだけを表示する方法(今回)
②3階層目までだけを表示するtreeコマンドを生成するVBScript
③3階層目までだけを表示する自作コマンドtree3.batを作ってみた
④Windowsのtreeコマンドで3階層目までだけを表示する簡単な方法
※2023/11/14追記 でかいフォルダでも軽快に動作する別バージョンを作ってみました。
⑤高速に3階層分のtreeコマンドと同じ結果を取るバッチファイル
PR
Whereコマンドについて
2022年07月05日
以前、Dirコマンドとエクセルを組み合わせてファイル一覧を取得するツールを紹介した。
https://aki.p-kin.net/Entry/10/
当時、ファイルサイズ、更新日時、フルパスを一気に取りたかったけど、
dirコマンドでの取り方がわからず断念して上記の形に落ち着いた。
最近、ファイル検索についてググってみたら、Whereコマンドなるものを発見!
https://aki.p-kin.net/Entry/10/
当時、ファイルサイズ、更新日時、フルパスを一気に取りたかったけど、
dirコマンドでの取り方がわからず断念して上記の形に落ち着いた。
最近、ファイル検索についてググってみたら、Whereコマンドなるものを発見!
空フォルダを消すクリーナバッチを改良
2022年04月30日
昨日からバッチファイルの勉強してて、書籍を1つ読破。
前にネットからまるパクリした空のフォルダをまとめて削除するバッチの
ソースを見返してみたけど理解できず。
本とネットを駆使してようやく理解できた。
●空フォルダ削除
for /f %%A in ('dir /ad /b') do rd %%A
※ フォルダ名にスペースが入ってると消してくれない
%%Aがループで使用する変数。
('dir /ad /b')がディレクトリ内の全フォルダを取得するコマンド。
今回、フォルダを対象とするので、
dirコマンドで一覧を取得。/ad:フォルダのみを対象に /b:フォルダ名だけ取得
for文の中で文字列として受け取るので /f
取得したフォルダ名が%%Aに入ってるので、rdコマンドで削除。
実はオプションなしでrdコマンドを打つと空フォルダしか消さない。
空じゃないフォルダも消すならrd /s /q とサブフォルダを対象にして
確認メッセージをスキップするオプションを指定する必要がある。
(win10環境だと/sでいけた。書籍は古いのでdeltreeで消すって書いてあった。)
※で書いた弱点克服のために試行錯誤。
"usebackq"オプションをつけてみたけどうまくいかず。rd "%%A"もだめ。
そして気づいた。そもそも全然違うことに。
改めて調べてみたらここがわかりやすい。
https://www.javadrive.jp/command/bat/index9.html#section1
カレントディレクトリにあるディレクトリの分だけ繰り返す
FOR /D %%変数 IN (セット) DO コマンド
for /d %%A in (*) do rm %%A
バッチファイルのあるディレクトリの空フォルダを消す正しいコマンド。
スペースの入ったフォルダも対象にするには""でくくればOK。やっと弱点克服。
●最終的なコマンド
for /d %%A in (*) do rm "%%A"
どのファイルを消したかとか見たければ、最後にpauseを付ける。
するとコマンドプロンプトウィンドウが表示されたままになる。
以下、ソースと結果(%0でバッチファイル名を取得できる)
こんな簡単に結果を見れるならVBScriptよりも使いやすいよなぁ・・・。
前にネットからまるパクリした空のフォルダをまとめて削除するバッチの
ソースを見返してみたけど理解できず。
本とネットを駆使してようやく理解できた。
●空フォルダ削除
for /f %%A in ('dir /ad /b') do rd %%A
※ フォルダ名にスペースが入ってると消してくれない
%%Aがループで使用する変数。
('dir /ad /b')がディレクトリ内の全フォルダを取得するコマンド。
今回、フォルダを対象とするので、
dirコマンドで一覧を取得。/ad:フォルダのみを対象に /b:フォルダ名だけ取得
for文の中で文字列として受け取るので /f
取得したフォルダ名が%%Aに入ってるので、rdコマンドで削除。
実はオプションなしでrdコマンドを打つと空フォルダしか消さない。
空じゃないフォルダも消すならrd /s /q とサブフォルダを対象にして
確認メッセージをスキップするオプションを指定する必要がある。
(win10環境だと/sでいけた。書籍は古いのでdeltreeで消すって書いてあった。)
※で書いた弱点克服のために試行錯誤。
"usebackq"オプションをつけてみたけどうまくいかず。rd "%%A"もだめ。
そして気づいた。そもそも全然違うことに。
改めて調べてみたらここがわかりやすい。
https://www.javadrive.jp/command/bat/index9.html#section1
カレントディレクトリにあるディレクトリの分だけ繰り返す
FOR /D %%変数 IN (セット) DO コマンド
for /d %%A in (*) do rm %%A
バッチファイルのあるディレクトリの空フォルダを消す正しいコマンド。
スペースの入ったフォルダも対象にするには""でくくればOK。やっと弱点克服。
●最終的なコマンド
for /d %%A in (*) do rm "%%A"
どのファイルを消したかとか見たければ、最後にpauseを付ける。
するとコマンドプロンプトウィンドウが表示されたままになる。
以下、ソースと結果(%0でバッチファイル名を取得できる)
こんな簡単に結果を見れるならVBScriptよりも使いやすいよなぁ・・・。
テキストをコピーしてからURLを開くバッチ
2022年04月12日
よくアクセスするサイトのIDとパスワードの打ち込みがめんどくさい。
そこで、バッチファイルを叩くとサイトへジャンプして、
IDとパスワードをクリップボードに送るバッチを作ってみた。
そこで、バッチファイルを叩くとサイトへジャンプして、
IDとパスワードをクリップボードに送るバッチを作ってみた。
Zipファイルと空フォルダを消すクリーナバッチ
2022年03月04日
勤務時間が変わってパソコンを全く触れてなかった。久々の更新。
メールのやり取りをすると、添付ファイルは暗号化する関係で、
ダウンロードフォルダにZipファイルが溜まっていく。
また、解凍したファイルはNASに移したりすると、
空のフォルダが残ったりする。
手作業でやるのめんどいので、バッチファイルにしてみたというお話。
まずは、コマンドの確認。
●Zipファイル削除
フォルダ内のZipファイルを消すには、「del *.zip」でいける。簡単。
●空フォルダ削除
コマンド作法わからんので、グーグル先生。
以下を試したらバッチファイルでもうまくいった。
for /f %%A in ('dir /ad /b') do rd %%A
(https://teratail.com/questions/53463より)
以下は、コマンドプロンプトではうまくいくけど、バッチファイルにしたらうまくいかず。
for /f "delims=" %d in ('dir "C:\Program Files (x86)\Microsoft Office" /ad /b /s') do rd "%d"
(https://rms-099.hatenablog.jp/entry/20130121/1359223420より)
コマンドがわかったので、メモ帳にコマンドを書いて、
拡張子を.batにすればできあがり。
これをダウンロードフォルダに置いて、実行すればOK。
空フォルダか確認する手間がなくなるので結構気に入ってます。
以下、ソース
メールのやり取りをすると、添付ファイルは暗号化する関係で、
ダウンロードフォルダにZipファイルが溜まっていく。
また、解凍したファイルはNASに移したりすると、
空のフォルダが残ったりする。
手作業でやるのめんどいので、バッチファイルにしてみたというお話。
まずは、コマンドの確認。
●Zipファイル削除
フォルダ内のZipファイルを消すには、「del *.zip」でいける。簡単。
●空フォルダ削除
コマンド作法わからんので、グーグル先生。
以下を試したらバッチファイルでもうまくいった。
for /f %%A in ('dir /ad /b') do rd %%A
(https://teratail.com/questions/53463より)
以下は、コマンドプロンプトではうまくいくけど、バッチファイルにしたらうまくいかず。
for /f "delims=" %d in ('dir "C:\Program Files (x86)\Microsoft Office" /ad /b /s') do rd "%d"
(https://rms-099.hatenablog.jp/entry/20130121/1359223420より)
コマンドがわかったので、メモ帳にコマンドを書いて、
拡張子を.batにすればできあがり。
これをダウンロードフォルダに置いて、実行すればOK。
空フォルダか確認する手間がなくなるので結構気に入ってます。
以下、ソース