CMD批处理实现dot命令自动运行更新
前言
最近学习dot语言
我们知道, 运行dott脚本大致有两种方法:
- 使用Gvedit编辑dot代码并直接点击运行按钮运行
- 使用记事本编辑工具编辑号dott脚本后, 使用CMD, 进入代码路径下,执行代码
dot -Tpdf xxx.dot -o -xxx.pdf
或dot -Tpng xxx.dot -o -xxx.png
或dot -Tjpg xxx.dot -o -xxx.jpg
…等等, 分别生成想要的pdf、png、jpg或其他格式 的文件 - 使用Sublime Text3(我主页有下载教程和汉化教程)编辑器编辑dott脚本, 然后将F7/Cmd-B映射dot引擎(该文章介绍了如何映射),该方法使用快捷键
WIn
+Shift
+g/G
即可瞬间生成结果,速度较前两个快,不过目前只能生成pdf, 想生成其他格式本人还未研究出来。
但是, 如果我们是学习阶段, 由于要熟悉各种属性的不同, 所以需要一直更改参数去观察各种参数画出来的效果,由此免不了需要一直手动点击运行或者键入cmd指令或者老按快捷键WIn
+Shift
+g/G
(这可是三个手指头), 很是麻烦, 所以查询了一下CMD的语句循环, 发现可以搞, 最终给出个比较舒服的方法。
一. 编写bat脚本
为了方便, 直接桌面新建一个记事本:a.text
- 编辑基本代码
代码如下(示例):
@echo off
for /l %%a in (1,1,100) do (pushd "%~dp0" &timeout /t 2 /nobreak &dot -Tpng demo.dot -o demo.png)
pause
- 保存退出, 将后缀改为
.bat
- 鼠标右键该文件
a.bat
打开,即开始运行
二. 解释
1. for /l %%a in (1,1,100)
:这个相信一看就懂, 其中(1,1,100)
代表的是(起点,步长,终点)
, 即从1开始每次加1直到100。
2. do (pushd "%~dp0" &timeout /t 2 /nobreak &dot -Tpng demo.dot -o demo.png)
: do
后面的括号是循环体,其中包含三句命令:pushd "%~dp0"
、timeout /t 2 /nobreak
、dot -Tpng demo.dot -o demo.png
,指令之间使用$
连接区分开来、
3. pushd "%~dp0"
就是设定批处理bat所在的目录为工作目录
4. timeout /t 2 /nobreak
: timeout命令(改文章介绍了该指令使用)
5. 由上可以看出, 如果我们想长时间学习dot脚本,可以把循环调多:for /l %%a in (1,1,1000)
。如果我们想设置刷新时间, 可以更改timeout
的值,例如:timeout /t 5 /nobreak
总结
这样以来, 我们只需要在学习dot脚本前打开a.bat
, 然后我们就可以尽情更改我们的代码,只要保存,生成的图文件会自动更新,我们可以方便的看到效果。