忍者ブログ

[PR]

2025年07月06日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

3階層目までだけを表示する自作コマンドtree3.batを作ってみた

2022年07月29日
前回、「3階層目までだけを表示するtreeコマンドを生成するVBScript」を紹介した。

これは前々回に紹介した「Windowsのtreeコマンドで3階層目までだけを表示する方法」の以下コマンドをクリップボードに送るスクリプト。

2層までtreeコマンド
tree [フォルダパス] | findstr /R /C:"^├─" /C:"^└─" /C:"^│ ├─" /C:"^│ └─" /C:"^ ├" /C:"^ └"

3層までtreeコマンド
tree [フォルダパス] | findstr /R /C:"^├─" /C:"^└─" /C:"^│ ├─" /C:"^│ └─" /C:"^ ├" /C:"^ └" /C:"^│ │ ├─" /C:"^│ │ └─" /C:"^│ └" /C:"^│ ├" /C:"^ │ ├" /C:"^ │ └"

スクリプト書いといてあれなんだけど、
やっぱりコマンドプロンプトから直接実行できた方が便利だなぁということで
今回は自作のコマンドをコマンドプロンプトで実行する方法について紹介。
PR
つづきはこちら "3階層目までだけを表示する自作コマンドtree3.batを作ってみた"

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



つづきはこちら "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を開くバッチ"