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



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

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

如果这听起来令人困惑,我很抱歉。我将尝试给出一个简化的例子:在远程系统上,我创建了四个文件:test_ttermpro.bat、test_ttermpro和test_ttermpro。Ttl、test_ttpmacro.bat和test_ttpmacro.ttl.

test_ttermpro.bat目录:

"C:Program Files (x86)teratermttermpro.exe" /C=1 /BAUD=115200 /M=C:UsersPublictest_ttermpro.ttl

test_ttermpro. xml的内容。ttl:

SessionLog='C:UsersPublic'
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)teratermttpmacro.exe" C:UsersPublictest_ttpmacro.ttl

test_ttpmacro的内容。ttl:

SessionLog='C:UsersPublic'
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:UsersPublictest_ttermpro.bat

psexec.exe /accepteula \%REMOTE_SYSTEM% C:UsersPublictest_ttpmacro.bat

在执行每个命令(分别执行以测试不同的脚本)之后,在远程系统上,我可以在Windows任务管理器的进程列表中看到ttermpro.exe,但我可以打开COM端口。Test_ttermpro.bat从未启动其会话日志(宏从未启动)Test_ttpmacro.bat确实有一个会话日志,但是在connect命令上冻结了。在我通过Windows任务管理器结束进程之前,两者都没有退出。

我使用的是Tera Term 4.87版本

关于为什么"连接"命令似乎挂起/冻结时远程启动Tera Term的想法?我是否缺少一个命令行参数?是否有更好的方法来远程启动Tera Term并使用宏?

使用ttermpro.exe:

我将test_ttermpro.bat更改为使用"/I"参数。这个.bat文件现在看起来包含:

"C:Program Files (x86)teratermttermpro.exe" /I /C=1 /BAUD=115200 /M=C:UsersPublictest_ttermpro.ttl

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

最新更新