忍者ブログ

3階層目までだけを表示するtreeコマンドを生成するVBScript

2022年07月26日
前回、「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:"^ │ └" /C:"^ ├" /C:"^ └"


パイプ以下を辞書登録したいところだけど、
長すぎて辞書登録ができない。

いちいちテキストファイルからコピペするのはだるいので、
VBScriptでクリップボードに送るソースを書いてみた。


定型文のコマンドを用意して、
InputBoxで取得したフォルダパスを置換。それをクリップボードに送るだけ。

VBSやVBAでは、文字列を""で囲うので、
「"」を「""」と記載する点に注意。

以下、ソース。

tree2.vbs
const strCmd = "tree path0 | findstr /R /C:""^├─"" /C:""^└─"" /C:""^│ ├─"" /C:""^│ └─"" /C:""^ ├"" /C:""^ └"""
dim strPath :strPath = inputbox ("取得対象パスを入力してください。")
dim sCmd : sCmd = replace(strCmd, "path0",strPath)
dim fso:set fso = createObject("Scripting.FileSystemObject")
With CreateObject("WScript.Shell")
With .Exec("clip")
Call .StdIn.Write(sCmd)
End With
End With
msgbox "2階層Treeコマンドをクリップボードに出力しました。コマンドプロンプトから実行してください。" & chr(10) & chr(10) & "<出力コマンド>" & chr(10) & sCmd


tree3.vbs
const strCmd =
"tree path0 | findstr /R /C:""^├─"" /C:""^└─"" /C:""^│ ├─"" /C:""^│ └─"" /C:""^ ├"" /C:""^ └"" /C:""^│ │ ├─"" /C:""^│ │ └─"" /C:""^│ └"" /C:""^│ ├"" /C:""^ │ ├"" /C:""^ │ └"" /C:""^ ├"" /C:""^ └"""

dim strPath :strPath = inputbox ("取得対象パスを入力してください。")
dim sCmd : sCmd = replace(strCmd, "path0",strPath)
dim fso:set fso = createObject("Scripting.FileSystemObject")
With CreateObject("WScript.Shell")
With .Exec("clip")
Call .StdIn.Write(sCmd)
End With
End With
msgbox "3階層Treeコマンドをクリップボードに出力しました。コマンドプロンプトから実行してください。" & chr(10) & chr(10) & "<出力コマンド>" & chr(10) & sCmd





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