忍者ブログ

Treeコマンドの結果から階層を指定して取り出すスクリプトの検討

2023年04月08日
前回投稿したGoogleSearhConsoleで直近1か月のページごとのアクセス数を見ると
圧倒的に以下のtreeコマンドのページが多い。

Windowsのtreeコマンドで3階層目までだけを表示する方法


この方法を自分で使っていて思うのは、フォルダ数が多いNASに対して
2階層と3階層それぞれの結果を取りたいときにめんどくさい。。。

今回は、treeコマンドの結果をインポートして
階層別にファイル出力するスクリプトについて検討した話。


treeコマンド自体に階層を指定する方法はないので、結局全検索が行われる。
記事で紹介した方法は、treeコマンドを実行した結果を
特定のキーワードでフィルタして表示するというもの。


treeコマンドの結果をテキストファイルに出力しておいて、
それをインポートするスクリプトを作ればいいじゃんと思った次第。


1階層目は以下の2通りのみ。
├─パターン1
└─パターン2

全角1文字の後に─(罫線)が登場する。
正規表現すると、以下の通り。

"^..─"  (全角1文字は、「..」で任意の半角2文字で表現する)

2階層目を正規表現すると以下の通り。

"^.. ..─"

特徴
・全角1文字か半角2文字が2回登場。
・3バイト目と4バイト目がスペース2つ。
・7バイト目と8バイト目に─(罫線)が登場する。


3階層目を正規表現すると以下の通り。

"^.. .. ..─"

特徴
・全角1文字か半角2文字が3回登場。
・3バイト目、4バイト目、7バイト目、8バイト目がスペース2つ。
・9バイト目と10バイト目に─(罫線)が登場する。


4階層目を正規表現すると以下の通り。

"^.. .. .. ..─"


特徴
・全角1文字か半角2文字が4回登場。
・3バイト目、4バイト目、7バイト目、8バイト目、11バイト目、12バイト目がスペース2つ。
・13バイト目と14バイト目に─(罫線)が登場する。



これらの特徴を使って判定処理を書くか、
正規表現を使って判定するか悩ましいなぁ。

正規表現を使って判定する処理は、以下のサイトが良さそう。

https://syutaku.blog/vbscript-regexp-test/


プログラムの要素とベースとなるソースは以下の通り。
・VBScriptでドラッグドロップをトリガに処理する。
ドラッグドロップで更新日時をファイル名に付与するVBScript
CSVファイルのタイトル行を削除してリネームするスクリプト


・テキストファイルに特定文字を含む行を別名保存する。
テキストファイルから指定した文字列を含む行を抽出するVBScript



とりあえず必要な要素は整理したけど、
VBScriptは未着手。。。

完成したら続き書きます。


PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字