ファイル選択ダイアログ→PlantUML JAR 実行

PlantUML ダウンロードした jar ファイルで、
java -jar plantuml.jar ファイル -charset UTF-8
を実行するのは、結構面倒くさい。。。
oboe2uran.hatenablog.com




そこで、ファイル選択ダイアログで選択する bat ファイルを用意することにする。

まずは、ファイル選択ダイアログを bat ファイル で動かすため、


基になる ファイル選択だけの確認!!

@echo off
@rem set "File=C:\a.txt"
set "Filter=テキスト (*.txt)|*.txt|すべてのファイル (*.*)|*.*|"
set "Title=ファイルの選択"
for /f "delims=" %%I in ('MSHTA.EXE "about:<object id=HtmlDlgHelper classid=CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>resizeTo(0,0);function window.onload(){var Env=new ActiveXObject('WScript.Shell').Environment('Process');new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(HtmlDlgHelper.object.openfiledlg(Env('File'),null,Env('Filter'),Env('Title')).replace(/\0.*/,''));close();}</script><hta:application caption=no showintaskbar=no />"') do echo %%I

pause

↑ for ~ の行は、改行を入れてはならない。

目的の plantuml.jar 実行、、
C:\Programs\PlantUML の下に、planttml.jar を置いて、java コマンドのパスも通ってる環境で、、

@echo off
set "Filter=Markdown (*.md)|*.md|plantUML (*.pu)|*.pu|すべてのファイル (*.*)|*.*|"
set "Title=PlantUMLファイルの選択"
for /f "delims=" %%I in ('MSHTA.EXE "about:<object id=HtmlDlgHelper classid=CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>resizeTo(0,0);function window.onload(){var Env=new ActiveXObject('WScript.Shell').Environment('Process');new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(HtmlDlgHelper.object.openfiledlg(Env('File'),null,Env('Filter'),Env('Title')).replace(/\0.*/,''));close();}</script><hta:application caption=no showintaskbar=no />"') do java -jar C:\Programs\PlantUML\plantuml.jar %%I -charset UTF-8

これで、DOSプロンプトウィンドウを起動してコマンドを打たなくて済む。