忍者ブログ

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コマンドと同じ結果を取るバッチファイル



PR
つづきはこちら "Windowsのtreeコマンドで3階層目までだけを表示する方法"

Whereコマンドについて

2022年07月05日
以前、Dirコマンドとエクセルを組み合わせてファイル一覧を取得するツールを紹介した。
https://aki.p-kin.net/Entry/10/


当時、ファイルサイズ、更新日時、フルパスを一気に取りたかったけど、
dirコマンドでの取り方がわからず断念して上記の形に落ち着いた。


最近、ファイル検索についてググってみたら、Whereコマンドなるものを発見!
つづきはこちら "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よりも使いやすいよなぁ・・・。
つづきはこちら "空フォルダを消すクリーナバッチを改良"

テキストをコピーしてからURLを開くバッチ

2022年04月12日
よくアクセスするサイトのIDとパスワードの打ち込みがめんどくさい。

そこで、バッチファイルを叩くとサイトへジャンプして、
IDとパスワードをクリップボードに送るバッチを作ってみた。
つづきはこちら "テキストをコピーしてからURLを開くバッチ"

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ファイルと空フォルダを消すクリーナバッチ"