久しぶりにバッチファイルをいじった気がする
PowerShellでもいいんだけど、別にループとかそういう処理をしないならバッチファイルでいいかなということで久しぶりにバッチファイルをいじりました。フォルダの中身を見るのにtree
コマンドというのがあるので、こういった使い方をしてフォルダとファイルの構造をみていくのはどうですかという提案。
久しぶりにいじったけどやっぱり「%」で囲む変数は死ぬほど読み辛い。
つくってみた
・treeコマンド
ドライブやパスのフォルダ構造を図式表示します。
TREE [ドライブ:][パス] [/F] [/A]
/F 各フォルダのファイル名を表示します。
/A 拡張文字ではなく、ASCII 文字で表示します。
そんなコマンドです。実際に調べたいフォルダでtree /F
をすると以下のようになるよ。
これで毎回フォルダに移動して、コマンド打ってもいいのだけど僕はそれすらも面倒くさいのでバッチファイルにして、下のようなテキストファイルで管理するのはどうですかという提案をするよ。上の画像で言うTreeLog.batを作ってしまえということだよ。このファイルをクリックするだけで「2016_09_17log.txt」のようなファイルが作成されるようになるよ。
バッチファイルの中身「TreeLog.bat」
@echo off echo %date%_%time%_LogData >> ./log/%date:~0,4%_%date:~5,2%_%date:~8,2%log.txt tree /f >> ./log/%date:~0,4%_%date:~5,2%_%date:~8,2%log.txt
・誰も得しない解説
%date% | 現在の日付を返すよ |
%time% | 現在の時間を返すよ |
日付を返すとき「/」記号がファイルに使えないからそれをはじくような記述をしているよ
これで、「2016_09_17log.txt」のようなテキストファイルが出力されるようになるよ。中身はこんな感じ。
2016/09/17_15:43:47.28_LogData C:. │ tree.txt │ TreeLog.bat │ ├─7月 │ メモ.txt │ ├─8月 │ メモ.txt │ ├─9月 │ メモ.txt │ 欲しいものリスト.txt │ └─log 2016_09_17log.txt
リダイレクトとかそういったものや、追加で欲しい機能は適宜好みの形にカスタマイズしてね。今回の記事、いつものこんなのつくってしまったシリーズよりも実用的な気がするけどどうだろう。