本Blog所有內(nèi)容不得隨意轉(zhuǎn)載,版權(quán)屬于作者所有。如需轉(zhuǎn)載請(qǐng)與作者聯(lián)系(
fastzch@163.com
)。
未經(jīng)許可的轉(zhuǎn)載,本人保留一切法律權(quán)益。
一直以來(lái),發(fā)現(xiàn)有某些人完全不尊重我的勞動(dòng)成果,隨意轉(zhuǎn)載,提醒一下那些人小心哪天惹上官司。
SecureCRT支持ActiveX script engines,包括VBScript和JScript (Microsoft’s version of JavaScript)兩種腳本。
Note:如果你想使用腳本自動(dòng)運(yùn)行方式的話,需要在session?option中進(jìn)行設(shè)置。
腳本可以用任何文本編輯器來(lái)開(kāi)發(fā)。Script頭部用來(lái)識(shí)別腳本語(yǔ)言和SecureCRT腳本接口的版本,腳本頭部的每一行必須以#開(kāi)頭,頭部包括
$language行和
$interface行。例如,下面是一個(gè)簡(jiǎn)單的腳本。
#?$language?=?"VBScript"
#?$interface?=?"1.0"

Sub?Main
??'?Display?SecureCRT's?version
??MsgBox?"SecureCRT?version?is:?"?&?crt.Version
End?Sub代碼通常放在main子過(guò)程,引擎在執(zhí)行main子過(guò)程前,將轉(zhuǎn)換并執(zhí)行全局代碼(腳本代碼定義在任何子過(guò)程之外),如果你有一些初始化處理的話,可以使用這一特性。
如果想終止main過(guò)程,用VBScript的話,可以用Exit Sub語(yǔ)句。如:
Sub?Main

??condition?=?DoSomething()
??If?condition?=?0?Then
????'?Error,?bailout
????Exit?Sub
??End?If
???
End?SubSecureCRT有一些內(nèi)建的對(duì)象,可以通過(guò)頂級(jí)應(yīng)用對(duì)象或子對(duì)象調(diào)用。這些對(duì)象都有一些屬性和方法。例如:
Dim?dlg
Set?dlg?=?crt.Dialog
dlg.Prompt("Login:")
下面分享給大家一個(gè)通過(guò)N個(gè)跳板機(jī)上傳文件的FTP腳本:
#$language?=?"VBScript"
#$interface?=?"1.0"

Sub?main
??'?turn?on?synchronous?mode?so?we?don't?miss?any?data
??crt.Screen.Synchronous?=?True
??
??'?Wait?for?a?string?that?looks?like?"login:?"?or?"Login:?"
??'?Occasionally,?a?host?needs?to?be?kicked?to?display?a
??'?login?prompt.
??
??If?(Not?crt.Screen.WaitForString("ogin:?",?5))?Then
????crt.Screen.Send?vbCr
????crt.Screen.WaitForString?"ogin:?"
??End?If
??
??crt.Screen.Send?"user0"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd0"?&?VbCr
??crt.Screen.WaitForString?"#"
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"#"
?
??'ftp?to?Machine1
??crt.Screen.Send?"ftp?IP1"?&?VbCr
??crt.Screen.WaitForString?"):?"
??crt.Screen.Send?"user1"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd1"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??filename?=?crt.Dialog.Prompt("Please?enter?your?filename.",?"Enter?filename",?"",?false)??
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"binary"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"??
??crt.Screen.Send?"put?"?+?filename?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"bye"?&?VbCr
??crt.Screen.WaitForString?"#"???


??crt.Screen.Send?"telnet?IP1"?&?VbCr
??
??If?(Not?crt.Screen.WaitForString("ogin:?",?5))?Then
????crt.Screen.Send?vbCr
????crt.Screen.WaitForString?"ogin:?"
??End?If
??
??crt.Screen.Send?"user1"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd1"?&?VbCr
??crt.Screen.WaitForString?">"
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?">"
??
??
??
??'ftp?to?Machine2
??crt.Screen.Send?"ftp?IP2"?&?VbCr
??crt.Screen.WaitForString?"):?"
??crt.Screen.Send?"user2"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd2"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"binary"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"??
??crt.Screen.Send?"put?"?+?filename?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"bye"?&?VbCr
??crt.Screen.WaitForString?">"???


??crt.Screen.Send?"telnet?IP2"?&?VbCr
??If?(Not?crt.Screen.WaitForString("ogin:?",?5))?Then
????crt.Screen.Send?vbCr
????crt.Screen.WaitForString?"ogin:?"
??End?If
??crt.Screen.Send?"user2"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd2"?&?VbCr
??crt.Screen.WaitForString?"#"
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"#"
??
??
??
??
??
??
????'ftp??to?Machine3
??crt.Screen.Send?"ftp?IP3"?&?VbCr
??crt.Screen.WaitForString?"):?"
??crt.Screen.Send?"user3"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd3"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
?
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"binary"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"??
??crt.Screen.Send?"put?"?+?filename?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"bye"?&?VbCr
??crt.Screen.WaitForString?"#"???


??crt.Screen.Send?"telnet?IP3"?&?VbCr
??
??If?(Not?crt.Screen.WaitForString("ogin:?",?5))?Then
????crt.Screen.Send?vbCr
????crt.Screen.WaitForString?"ogin:?"
??End?If
??
??crt.Screen.Send?"user3"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd3"?&?VbCr
??crt.Screen.WaitForString?"#"
??crt.Screen.Send?"cd?/tmp"?&?VbCr
??crt.Screen.WaitForString?"#"
??
??
??
??
??
????'ftp??to?Machine4
??crt.Screen.Send?"ftp?IP4"?&?VbCr
??crt.Screen.WaitForString?"):?"
??crt.Screen.Send?"user4"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd4"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"

??crt.Screen.Send?"binary"?&?VbCr
??crt.Screen.WaitForString?"ftp>?"??
??crt.Screen.Send?"put?"?+?filename?&?VbCr
??crt.Screen.WaitForString?"ftp>?"
??crt.Screen.Send?"bye"?&?VbCr
??crt.Screen.WaitForString?"#"???


??crt.Screen.Send?"telnet?IP4"?&?VbCr
??
??If?(Not?crt.Screen.WaitForString("ogin:?",?5))?Then
????crt.Screen.Send?vbCr
????crt.Screen.WaitForString?"ogin:?"
??End?If
??
??crt.Screen.Send?"user4"?&?VbCr
??crt.Screen.WaitForString?"assword:"
??crt.Screen.Send?"pwd4"?&?VbCr
??crt.Screen.WaitForString?">"
??
??
??crt.Screen.Synchronous?=?False

End?Sub
?
posted on 2008-09-29 12:51
Robin's Programming World 閱讀(9159)
評(píng)論(4) 編輯 收藏 所屬分類:
其它