teraterm 这个软件虽然界面简陋,布局难看,但该有的功能都还有。
重点是它是免费的
,其他要增强功能的windows ssh终端工具都要付费
。
今天有个需求,就是我想做一个bat脚本,双击执行它ssh去服务器重启一个服务。
这个需求在linux系统下不难实现,用expect就行了,但是在windows下,这就有些困难了。
如果要让windows安装expect,你就要装cgywin,但是我现在就有现成的ssh工具,为毛不用呢?
所以我就研究了一下teraterm的macro脚本(TTL)
帮助文档可以在teraterm自己的帮助文档里查,它是日语
的
还可以互联网,它是
英语
的http://ttssh2.osdn.jp/manual/en/
调用流程是这样的
bat文件
->ttl脚本
要实现这个功能,还需要把teraterm的安装目录添加到环境变量的Path里,当然如果你不是管理员,可以用powershell临时添加环境变量
$env:Path+=;"C:\Program Files (x86)\teraterm"
然后创建两个脚本,一个是ttl脚本
以下是我的例子
connect "192.168.198.132 /ssh /auth=password /user=testusr2 /passwd=mju76yhn"
wait "$ "
sendln "whoami"
wait "$ "
sendln "uname -n"
wait "$ "
sendln "echo a test from teraterm macro"
;wait "$ "
;sendln "exit"
然后是bat脚本,就是你双击这个脚本就可以自动调用teraterm的
rem a test for ttpmacro
pause
ttermpro /M=C:\Users\rikug\Desktop\shell\test.ttl
唯一要注意的地方是我这里用的命令是ttermpro,即teraterm的终端命令,参数/M。
虽然网上的例子都是ttpmacro,但是我并没有一次执行成功
还有,/M后面接的ttl脚本路径要是绝对路径
这样以后双击bat文件看执行效果
图片.png
我这里没有直接退出,好看效果,如果对自己的脚本语法有信心的话,可以在ttl脚本写上sendln "exit"
网友评论