2015年10月19日 星期一

tera term的ttl常用指令

介紹幾個常用的指令

a.通過Tera Term連接PFC所在的機器以及斷開連接
通過TTLconnect/disconnect命令實現
Connect
connect '192.168.137.27 /ssh /auth=password /user=username /passwd= passwd'
注:其中username是用戶名,passwd是密碼
Disconnect
disconnect   
注:disconnect後面指定參數,這樣就不彈出確認框了。

connect '/c=3 /baud=115200'
; C=3 是com port3 ,baud rate =115200

b.通過log記錄全程操作過程,最終通過比對log確認測試結果。
通過logopen/logclose命令來寫log
logopen
logopen filename 0 1 1
注:filename最好設成命令名,不通ttl腳本不要重複。也可以帶執行的時間,
例如:Show_candidate_config_  20110426-130939.log
    方法如下:
gettime timestr "%Y%m%d-%H%M%S"
getdir mdir
sprintf2 filename '%s\ Show_candidate_config _%s.log' mdir  timestr
logclose 
           logclose

    

c.測試項作成時可能用到的命令
Pause:(暫停)
 pause <time> Remarks Pauses for <time> seconds. 


Sendln:(發送命令並換行)
sendln <data1> <data2>....
Remarks Causes Tera Term to send characters followed by a new-line character to the host.     
        

Send :(發送命令)
send <data1> <data2>....
Remarks Causes Tera Term to send characters to the host.
If <data> is a string, the string is sent to the host. 
If <data> is an integer, its lowest-order byte (0-255) is regarded as an ASCII code of the character, and the character is sent to the host.         例如:按Tab 鍵的命令是send  #9           


wait等待匹配的字符串出現)  
wait <string1> [<string2> ...]
Remarks Pauses until one of the character strings is received from the host, or until the timeout occurs. Maximum number of the strings is 10. 
     注:使用這個命令是需要設置timeout 時間,命令的返回結果保存在resault 變量中,resault 時,則為超時。Timeout 設置命令如下:
          timeout=1   /* 等號後面的值為整數,設為負則是無限等待*


waitln等待整行匹配的字符串出現)         
waitln <string1> [<string2> ...]
Remarks Pauses until a line which contains one of the character strings is received from the host, or until the timeout occurs. Maximum number of the strings is 10.     
注意點同上     其他命令例如if,then,elseif,else,endif,goto 等請參考help 文件。 

flushrecv 
有時 Tera term Macro 跑久會出現問題,通常是 Tera term 的輸出太多了,造成 Macro 的誤判,
其實也不是誤判而是從主機接收字符被傳輸到 Macro .Macro 會存儲資料在他的緩衝器中.
通常是遇到 如“wait”等待命令,Macro 會從緩衝器讀出剛剛儲存的字元.但在緩衝區中的字符

有可能發生緩衝區溢出,這時候我們可以透過 flushrecv 命令清除緩衝區的資料來避免這個問題的發生.



腳本製作注意
a.    不同的ttl 腳本內指定的Log 文件名​​不能重複。
b.    腳本的最後部分請清空測試環境,以便下一個ttl 腳本執行。
c.    在執行比較緩慢的地方,例如連接機器時,請追加pause 命令
d.    腳本盡量寫得簡潔短小,以便式樣發生變更時易於更改。
e.    必要的時候可以追加註釋


例子:
1,window 下創建bat文件
"C:\Program Files\teraterm\ttpmacro.exe" "D:\My Kownhow\TTL\test.ttl"
exit
2,生產ttl腳本文件test.ttl
;###connect host
connect '172.28.92.23 /ssh /auth=password /user=root /passwd=password'
pause 1
;###create log
gettime logstr "log-%Y%m%d-%H%M%S.txt"
getdir curdir
sprintf '%s\%s' curdir logstr
filename = inputstr
logopen filename 0 1 1
logwrite 'Log start'#13#10
looptimes = 1 ;
while looptimes < 11
 ;###run cmd 
 sendln "ls -l"
 wait "#"
looptimes = looptimes + 1
endwhile
;###closelog
Logclose
;###disconnect
disconnect
closett
執行bat文件就可以運行ttl腳本.

沒有留言:

張貼留言