#バッチファイルで解決しよう!#
Graphvizでdotファイルを編集しようとすると、dotファイルがWordに関連付けられていることがあります。それを、わざわざ右クリックから"メモ帳で開く"で開いていませんか?そこで、txtファイルで編集しておいて、最後にpngやpdfにする際に、勝手にdotファイルに変換してくれるバッチファイルを作ってみました。ちなみに、バッチファイルの大まかな構造自体は、前回 【Graphviz 】dotファイルを画像ファイルに変換する。(for Windows) で紹介したものとほとんど変わっていません。
@echo off
pushd %~dp1
echo;
echo dotファイルに変換後、画像ファイル、pdfファイルに変換します。
ren "%1" "%~n1.dot"
set file=%~n1.dot
echo;
set /p type=変換先拡張子の入力 >>>
"C:\Program Files (x86)\Graphviz2.38\bin\dot.exe" -Kdot -T%type% "%file%" -o"%~n1.%type%"
ren "%file%" "%~nx1"
最後 (10行目) には、もう一度拡張子をtxtに戻しています。
###追記 (2018/10/30)###
ファイル名を変更して保存させるバッチファイル
一度目に変換先拡張子の入力 >>>
と出た際に、r (半角小文字) を入力することで、別名で保存可能。また、TXTファイルがD&Dされなかったり、ダブルクリックでバッチファイルが開かれたときに、エラーが返ってくるようにしました。
@echo off
pushd %~dp1
ren "%1" "%~n1.dot"
if %errorlevel% neq 0 (
echo TXTファイルをドラッグアンドドロップしてください。
timeout 7 > nul
exit
)
echo;
echo dotファイルに変換後、画像ファイル、pdfファイルに変換します。 (リネーム保存用隠しコマンド:r)
set file=%~n1.dot
echo;
set /p format=変換先拡張子の入力 >>>
if "%format%"=="r" goto :ren_option
"C:\Program Files (x86)\Graphviz2.38\bin\dot.exe" -Kdot -T%format% "%file%" -o"%~n1.%format%"
ren "%file%" "%~nx1"
exit
:ren_option
echo;
set /p name=変換先ファイル名の入力 >>>
echo;
set /p format=変換先拡張子の入力 >>>
"C:\Program Files (x86)\Graphviz2.38\bin\dot.exe" -Kdot -T%format% "%file%" -o"%name%.%format%"
ren "%file%" "%~nx1"
exit