打印
[牛人杂谈]

一款轻量级终端工具TeraTerm的脚本介绍

[复制链接]
1651|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TeraTerm 是一款类似超级终端的软件,但功能更为强大,最大的特色是支持脚本。非常丰富的脚本命令扩展使TeraTerm能做许多事情,可以大大简化了工作量,非常适合频繁使用串口或者Telnet等方式调试的环境。配合批处理或者VBA做一些简单界面,往往能迅速开发出完整的功能。在某些情况下比使用程序代码更为便捷,也使不太懂编程的人不必囿于他人进度。总的来说,TeraTerm可以完成终端交互,字符串的处理(从连接,替换到支持正则表达式),读写文本,简单计算,调用外部程序,判断选择循环暂停等逻辑更是一应俱全。

  TeraTerm支持的脚本,是一个后缀为ttl的文本文件,可以直接使用记事本打开编辑。TeraTerm安装文件夹内有一个名为ttpmacro.exe的可执行文件,是TeraTerm的脚本解释器,双击执行后可以直接弹出对话框,获取ttl文件即可执行。也可以打开TeraTerm,从主菜单内选择Control –>Macro执行。

以下分5个章节来详细讲述TeraTerm宏的使用,最后1个章节会讲述一些和批处理和VBA的配合。

  • 第一个ttl宏
  • 基础命令
  • 逻辑
  • 字符串的操作
  • 批处理和VBA的配合

  在熟悉了这些内容之后,还需要深入一点了解ttl,那么可以参阅安装文件夹下的teraterm.chm帮助文件,所有的内容都可以从那上面获取。在以后的宏编写过程中,这个帮助文件也可以作为非常有用的参考文档。


沙发
734774645|  楼主 | 2017-5-19 11:19 | 只看该作者

第一个ttl宏

  打开记事本,输入以下文字,保存后将文件后缀改成ttl,并将文件名改成firstTtl。

  connect "/c=1 /baud=38400"

  sendln ""

  wait "pSH+>"

  messagebox "Hello World! I caught the string!" "First ttl"

  closett

  如果安装了TeraTerm,则图标会变成默认的TeraTerm宏样式。双击这个文件执行,在我的电脑上会顺利弹出一个如下图所示的对话框,点击“确定”后整个程序关闭。



使用特权

评论回复
板凳
734774645|  楼主 | 2017-5-19 11:19 | 只看该作者

第一个ttl宏

  打开记事本,输入以下文字,保存后将文件后缀改成ttl,并将文件名改成firstTtl。

  connect "/c=1 /baud=38400"

  sendln ""

  wait "pSH+>"

  messagebox "Hello World! I caught the string!" "First ttl"

  closett

  如果安装了TeraTerm,则图标会变成默认的TeraTerm宏样式。双击这个文件执行,在我的电脑上会顺利弹出一个如下图所示的对话框,点击“确定”后整个程序关闭。



使用特权

评论回复
地板
734774645|  楼主 | 2017-5-19 11:19 | 只看该作者

这个只有5行的脚本其实执行了很多事情:打开串口,配置串口,发送字符,等待出现想要的字符,弹出对话框,断开串口关闭程序窗口等。这5行看起来也比较简单,但是作为第一个脚本,还是逐行来进行以下分析。

  connect "/c=1 /baud=38400"

  开始的connect是关键字,是用来进行连接的。Connect后面是它接受的参数,用一对双引号包起来,当然你也可以使用一对单引号。记住,在TeraTerm脚本里面,单引号和双引号是没有区别的。/c=1的意思很简单,表示COM1,如果要连接的是COM30,那写成/c=30就行。空一格之后还有一个/baud=38400的参数,看得出来是指定波特率的。如果连接对象的波特率是9600,那么就写成/baud=9600。

  很多时候,连接对象的波特率是固定的,每次都要写波特率显得有些麻烦,那么可以在TeraTerm的配置文件里写入默认波特率,这样每次写脚本时只要写上connect “/c=1”就可以,波特率会自动使用默认值。配置文件是安装文件夹下的TERATERM.INI。可以打开查找到BaudRate=9600这一行,将后面的数值改成自己需要的保存即可。

  sendln ""

  这一句的意思非常容易明白,就是发送。精确一点,是模拟了发送之后回车换行的过程。发送的内容用双引号或者单引号包起来。这句发送的内容为空,表示只进行了一个回车换行。同理,你一定能猜到,存在一个send的命令,作用是发送内容,但是后面不跟回车换行。没错,而且可以提前告诉你:send #13本质上等同于sendln ""。

  wait "pSH+>"

  这一句的意思也非常浅显,等待。命令是wait,后面的参数是等待的字符串pSH+>。Wait后面可以带很多参数,最多可以达到10个,中间用空格隔开。这10个参数之间的关系是或,比如wait “hello”“ciao”“bonjour”,只要发现打印字符里出现任意一个满足,则认为等待到了。关于等待的不同用法,有很多内容,下面会有专门章节讲述。

  messagebox "Hello World! I caught the string!" "First ttl"

  这一句的意思是弹出一个对话框,显示一串字符,并且设定了对话框的标题为"First ttl"。在使用时,两个参数都不能省略。

  Closett

  这一句的意思是断开当前窗口的连接,然后关闭程序。如果不加这一句,那么宏执行完后,窗口和连接就会保持在最后执行的状态下。

  这个脚本是一个典型的串口操作过程,连接,发送,等待,显示,断开。熟悉了这个脚本以后,应该有一个整体概念了,知道TeraTerm脚本如何运作。下一章开始详细介绍常用的命令。


使用特权

评论回复
5
mintspring| | 2017-5-19 18:32 | 只看该作者
看着很不错的样子,可以做下载程序的客户端。

使用特权

评论回复
6
598330983| | 2017-5-19 23:14 | 只看该作者
终端程序中的优秀者

使用特权

评论回复
7
gejigeji521| | 2017-5-20 13:51 | 只看该作者
这个软件是开源的,好多高手用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

197

主题

3445

帖子

14

粉丝