如何在Tera Term宏中获取当前已连接的COM端口号?
Tera Term宏获取当前连接串口端口号实现方案
方案选型建议
- 编写4份独立宏、分别设置弹窗位置的方案维护成本极高,后续调整命令逻辑、解析规则、弹窗样式时需要同步修改4份文件,不推荐使用
- 单份通用宏、弹窗携带端口标识的方案仅需维护1份脚本,适配所有串口会话,是最优解
获取当前串口端口号的核心方法
Tera Term宏提供内置命令直接读取当前会话的连接端口信息,无需额外配置:
; 将当前连接的串口端口名存入current_port变量 getspecialinfo current_port port
该命令在串口连接成功后调用,返回值为Windows系统识别的串口名称,格式通常为
COMx(例如COM1/COM4),部分USB转串口驱动返回值会附带驱动前缀,但一定会包含明确的COM端口编号,足以区分不同设备。
老版本兼容写法
如果使用的Tera Term版本较低,getspecialinfo命令不支持port参数,可以通过读取窗口标题截取端口号,串口连接的Tera Term窗口标题默认以端口号开头:
; 获取窗口标题 gettitle win_title ; 按空格分割字符串,第一段即为端口号 strsplit win_title ' ' current_port = groupmatchstr1
整合到现有流程的示例代码
直接把端口获取逻辑嵌入你现有的操作流程即可,弹窗标题和内容都可以携带端口信息,方便区分设备:
; 1. 获取当前会话对应端口号 getspecialinfo current_port port ; 2. 原有业务逻辑:发送cat命令、解析返回结果 sendln "cat /your/target/path" ; 替换为实际需要执行的cat命令 wait "your_expected_end_flag" ; 替换为实际的返回结果结束标识 parse_result = inputstr ; 替换为实际的结果解析逻辑,存储最终要展示的内容 ; 3. 弹窗展示结果,标题携带端口号,直接区分对应设备 messagebox parse_result "端口" + current_port + " 设备返回结果"
内容的提问来源于stack exchange,提问作者simryang
相关产品推荐
相关产品推荐

