0

我觉得 Teraterm 没用。

我试图创建一个发送一些愚蠢命令的简单宏 macro.ttl:

connect '/C=3'
sendln '?' 
sendln '|3'

为了:连接'/C = 3'-连接到端口3(虽然它已经在配置中),sendln'?- 显示帮助,sendln '|3' - 进入这个菜单,等等。

这在我打开 Teraterm 并转到宏并打开文件时有效,但我现在的问题是如何从 cmd 窗口处理这个问题。我试过这个:

start ttermpro.exe TTPMACRO "Teraterm_macros\macro.ttl"

基本上:启动Teraterm,打开宏和宏文件的路径和文件名。但它报告错误:

无效的主机

请问有什么提示吗?谢谢

4

2 回答 2

1

命令 ,start ttermpro.exe TTPMACRO "Teraterm_macros\macro.ttl"将导致 Tera Term 尝试连接到可能不存在的主机“TTPMACRO”。因此,Tera Term 会打印“Invalid Host”错误消息。

根据 ttermpro 命令行选项的文档(此处),使用宏启动 Tera Term 的命令是:

start ttermpro.exe /M="Teraterm_macros\macro.ttl"

其中 /M 选项定义为:

/M= 使用宏启动 Tera Term。如果此值不是完整路径,则将其理解为来自 ttermpro.exe 的相对路径。

于 2018-10-09T19:32:55.143 回答
0

我考虑过写下我遵循的所有步骤,以防万一像我这样的人(有点愚蠢)也在同样的情况下苦苦挣扎:

1 - 将 .ttl 与 Teraterm 宏应用程序相关联:

1a - 我转到我的宏,单击 R 鼠标,“打开方式...”,“选择另一个应用程序”,“更多应用程序”,“在此 PC 中查找另一个应用程序”并选中“始终使用此应用程序打开 .ttl 文件”。

1b - 我首先找不到该应用程序,然后我在 c:>Program Files (x86)> teraterm 中找到它并选择了可执行文件“ttpmacro.exe”。

2 - 修改宏以启动通信,因为必须关闭 Teraterm 才能工作,所以当宏启动 Teraterm 时,您需要指定端口:

2a - 我在我的 Teraterm 宏中添加:connect '/C=3' (在我的情况下,我将 Teraterm 与 COM 端口 3 连接)

2b - 整个宏:它看起来像这样:

connect '/C=3' 
sendln '?' 
sendln '|3' 
sendln 'c' 
sendln '3'

这通过 com 端口 3 连接,然后进入一个菜单并发送 c,然后发送 3。所以现在如果我双击宏,它会单独执行宏。

3 - 运行宏的脚本:另外我决定创建一个批处理文件来从 CAPL 运行它,我这样做了:

3a - 如果 Teraterm 已经打开,首先关闭它,因为 teraterm exe 和宏 exe 不能同时连接:

任务列表 /fi "IMAGENAME eq ttermpro.exe" | find /i "ttermpro.exe" > nul if not errorlevel 1 (taskkill /im ttermpro.exe) else (echo ttermpro already closed)

ttermpro.exe 是正常启动 Teraterm 时运行的应用程序名称。

3b - 启动宏:

"C:\workset\Teraterm_macros\mytmacro.ttl"

所以它看起来像这样:

@echo off
echo.
echo .................................
echo .................................
echo .....  My teraterm macro .....
echo .................................
echo .................................
echo.

echo If Teraterm is launched it will be closed now. 

TIMEOUT /T 5 /NOBREAK 
REM this was to give the user 5seconds to cancel.

tasklist /fi "IMAGENAME eq ttermpro.exe" | find /i "ttermpro.exe" > nul
if not errorlevel 1 (taskkill /im ttermpro.exe) else (echo ttermpro already closed)
REM this is to close Teraterm if it´s opened already.

echo The calibration macro will be launched now. 
"C:\Teraterm_macros\mytmacro.ttl"
REM This is to start my macro. As I alread linked .ttl with the macro app it´ll open.


IF ERRORLEVEL 1 GOTO ERROR
GOTO END

:ERROR
echo my teraterm macro failed.
GOTO END

:END
::exit

4 - 我从 CAPL 调用它,因为我想要包含这个宏是一个测试:我添加了这一行:

TestWaitForSyscall("C:\Teraterm_macros","\"scriptwithmytmacro.bat",0,20000);

这在 CAPL 中打开批处理文件。它可以直接打开宏,但我想要一个 bat 脚本,这样我就可以添加诸如关闭 teraterm 之类的东西,如果它已经打开的话。

于 2018-11-05T15:06:29.873 回答