《大話SecureCRT腳本》之(二)增加循環

上回小菜學會了SecureCRT軟件的錄屏和回放功能,於是有了如下對話。

小菜:每天都需要重複輸入N條命令,現在一個回放腳本就搞定了,爽歪歪~

大鳥:如果要重複操作10次呢?

小菜:這還不簡單,那就回放10次咯。

大鳥:10次還好。運營商工程現場往往有幾十上百臺設備,每臺設備都操作10次,那工作量也不小。。。

小菜:這單靠回放功能,還真是有點麻煩。如果能像其他語言那樣,加個for循環就好了。

大鳥:儒鳥可教也(程大神原話)~果然是聰明。這樣的話,一臺設備只需要回放運行一次腳本就行了。

 

一 操作任務:

使用date命令查看系統當前時間,重複10次。要求在SecureCRT上操作一次就實現。

二 實現過程:

    選擇“Script”-"Start Recording Script“,啓動錄屏操作。
    在連接上的shell界面,手動輸入date命令並回車。得到如下圖所示。
    選擇“Script”-"Stop Recording Script“,結束錄屏操作,並保存剛纔的錄屏腳本,命名爲“1-錄製.vbs”後保存。

編譯“1-錄製.vbs”文件。使用txt或notepad++等文本編輯工具打開後,可以看到錄製的代碼。

在發送和等待的程序上加一個For Next循環,設定運行次數爲10次。命名爲“2-循環.vbs”後保存。

程序中的單引號表示註釋,與C語言中的//作用相同。

#$language = "VBScript"
#$interface = "1.0"

crt.Screen.Synchronous = True

' This automatically generated script may need to be
' edited in order to work correctly.

Sub Main    
    For i = 1 To 10 '循環10次
        crt.Screen.Send "#Time-" & i & chr(13) '計數'
        crt.Screen.WaitForString "]# "
        crt.Screen.Send "date" & chr(13)
        crt.Screen.WaitForString "]# "
    Next
    crt.Screen.Send "#End" & chr(13)
    crt.Screen.WaitForString "]# "
End Sub

三 重複回放:

通過“Script”-"run...“,選擇“2-循環.vbs”文件,點擊確定後就開始自動運行了。

運行10次後,程序結束。這次是不是操作更方便了?

四 SecureCRT錄屏功能引申

小菜:For..Next不是Vbs語言的命令嗎?怎麼SecureCRT軟件也支持?

大鳥:眼光很獨特,贊一個~SecureCRT軟件錄屏生成的腳本其實正是VBS語言,這從生成的文件後綴就可以看出來。

小菜:那我熟悉VBS語法後,豈不是可以對錄屏生成的腳本進行改造?

大鳥:正是。在錄製後的VBS文件中,SecureCRT對常見的VBS變量操作、文件操作等語法是完全支持的。我們可以在文件中加入算法實現,讓錄製後的VBS文件實現我們設想的功能。

小菜:SecureCRT的功能還真是強大。。。

大鳥:這話說得。。(故意咳嗽3聲),人家好歹是商業軟件。此外,SecureCRT還在VBS語言的基礎上,封裝了一系列的類庫,如上文中的crt.Screen.Send()/crt.Screen.WaitForString()。我們手工寫VBS腳本調用SecureCRT的功能也很方便的。掌握這一點很重要。在後面的介紹中,我們正是利用了這一點,使用SecureCRT完全爲我們改造所用。

小菜:又來這大一段的說教,(故意打個呵欠)我都要睡着了。等下次用到的時候我再來學吧。。

大鳥:書到用時方恨少,咋能老臨陣磨槍呢。。喂喂喂,你跑這麼快做啥呢~

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章