远程启动时Tera Term在连接时挂起/冻结

时间:2015-07-30 16:34:35

标签: batch-file psexec teraterm

我写了一个Tera Term宏来连接到一个串口,记录进来的数据,并发送一些测试命令。如果我从本地PC手动运行宏,一切都没有问题。我用ttpmacro.exe运行宏。

我使用PsExec.exe在远程系统上运行一些批处理脚本。当我尝试将Tera Term宏作为这些批处理脚本的一部分运行时,它会在尝试连接时挂起/冻结。宏只是停止而什么都不做。我肯定知道这是挂起的地方,因为我曾经在命令之后写了一个文件宏。如果我删除" connect"来自Tera Term宏的命令(我的其他命令保留在宏中),而是连接" ttermpro.exe / C = 1 / BAUD = 115200 / M = C:\ path-to-macro \" ,它仍然挂起/冻结。宏未运行且串口未打开(如果在启动远程脚本后我进入远程桌面,我可以打开到该串口的PuTTY会话)。

如果这听起来令人困惑,我道歉。我将尝试提供一个简化的示例: 在我的远程系统上,我创建了四个文件:test_ttermpro.bat,test_ttermpro.ttl,test_ttpmacro.bat和test_ttpmacro.ttl。

test_ttermpro.bat的内容:

"C:\Program Files (x86)\teraterm\ttermpro.exe" /C=1 /BAUD=115200 /M=C:\Users\Public\test_ttermpro.ttl

test_ttermpro.ttl的内容:

SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput_pro.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit

;write to file to verify macro gets executed
filewriteln sessionlogfile '1'

disconnect
closett
exit

test_ttpmacro.bat的内容:

"C:\Program Files (x86)\teraterm\ttpmacro.exe" C:\Users\Public\test_ttpmacro.ttl

test_ttpmacro.ttl的内容:

SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit

filewriteln sessionlogfile '1'

ConnectString='/C=1 /BAUD=115200'

filewriteln sessionlogfile ConnectString

; Connect to serial port 1 at 115200 baud
connect ConnectString
disconnect
closett
exit

如果我在远程登录远程系统时启动批处理脚本,则从远程系统运行它们没有问题。它们打开COM端口,每个端口都写入自己的会话日志文件。

但是,对于远程系统上的这四个文件,我尝试运行本地系统:

psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttermpro.bat

psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttpmacro.bat

执行每个命令(单独执行以测试不同的脚本)后,在远程系统上我可以在Windows任务管理器的进程列表中看到ttermpro.exe,但我可以打开COM端口。 test_ttermpro.bat从未启动过会话日志(宏从未启动过)。 test_ttpmacro.bat确实有一个会话日志,但只是冻结了connect命令。直到我通过Windows任务管理器结束该过程才退出。

我正在使用Tera Term版本4.87。

关于" connect"当远程启动Tera Term时,命令似乎挂起/冻结?我错过了命令行参数吗?有没有更好的方法来远程启动Tera Term并使用宏?

1 个答案:

答案 0 :(得分:0)

使用ttermpro.exe的可用解决方案:

我更改了test_ttermpro.bat以使用“/ I”参数。该.bat文件现在看起来包含:

"C:\Program Files (x86)\teraterm\ttermpro.exe" /I /C=1 /BAUD=115200 /M=C:\Users\Public\test_ttermpro.ttl

添加该参数允许Tera Term连接到串行端口,并在使用Psexec.exe远程调用该.bat文件时读取/写入/记录数据。