执行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时,这个日志名会重新更新时间戳,那么一个脚本就会有多个不同时间戳的日志,这样区分一个脚本的日志就需要进行拼接比较费劲了