Tera Term如何动态获取本地的绝对路径且自动保存日志

执行ttl脚本时,需要保存日志到本地,可以将保存的路径写死,也可以采用以下方式,自动生成带时间戳的日志,这个日志名和ttl日志名一致,但是带"_log_开始时间的时间戳"

;;ttl脚本内容
;;/nosecuritywarning是禁止首次连接的服务器弹出SECURITYWARNING框
sprintf2 loginmessage '%s /ssh /2 /auth=password /user=%s /passwd=%s /nosecuritywarning' params[2] params[3] params[4]

;;获取当前时间,设定指定格式
gettime timestr '%Y%m%d_%H%M%S'
sprintf2 vv '_log_%s.txt' timestr
;;取bat里面的内容,params[0]是整个bat脚本的如:"C:\Program Files (x86)\teraterm5\ttpmacro.exe" "%~dp0B.ttl"  %1 %2 %3 %4,这里的变量其实都是正常显示的,我这里只是为了方便记录
dir=params[0]
;;以双引号作为区分,分成7列
strsplit dir '"' 7
;;取的是ttl那个的绝对路径(在第4列)
log_location=groupmatchstr4
;;生成的日志文件名和ttl的名字相似,添加了_log_开始时间.txt(目的是在执行的ttl目录下生成log日志)
strreplace log_location 1 '\.ttl' vv

;;先有日志路径,conncet成功后才可以执行log相关操作
connect loginmessage
;;第一个1是日志追加,第二个1是开启时间戳
logopen log_location 0 1 0 1 0 0 0

这里日志名的话也可以直接用这种形式teraterm_%Y%m%d_%H%M%S_&h.log,但是如果当前目录下有多个ttl的话,相当于写死了前缀,这样不好区分是执行哪个脚本获取到的日志

&h代表连接的远程主机的名字

%Y%m%d_%H%M%是代表时间戳的格式

这里用变量来获取当前开始时间而不是直接选择用%Y%m%d_%H%M%的原因是:当connect断开重新建立connect时,这个日志名会重新更新时间戳,那么一个脚本就会有多个不同时间戳的日志,这样区分一个脚本的日志就需要进行拼接比较费劲了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值