vbs常用例子

来源:互联网 发布:mysql 建库 utf8 编辑:程序博客网 时间:2024/05/17 06:41

1.返回当前的目录

Dim objfso

'创建FileSystemObject对象
Set objfso = createobject("Scripting.FileSystemObject")
'返回当前的目录,下面两条语句返回一样的结果
msgbox (objfso.GetAbsolutePathName(""))
msgbox (objfso.getFolder(".").Path)

'在c盘下也能用下面的方式

msgbox (objfso.GetAbsolutePathName("C:"))

2.vbs读取UTF-8编码的文件

Function readFile(filePath)
    On Error Resume Next '打开异常捕获
'Msgbox Err.number
    Set asm = CreateObject("Adodb.Stream")
    asm.Type = 2
    asm.mode = 3
    asm.charset = "utf-8"
    asm.Open
    asm.LoadFromFile filePath
    readFile = asm.ReadText
    asm.close
    If Err.number <> 0 Then
        Dim sfo, fi
        Set sfo = CreateObject("Scripting.FileSystemObject")
        Set fi = sfo.OpenTextFile(filePath, 1)  
        readFile = fi.ReadAll
        fi.Close
    End If
    
    On Error Goto 0 '关闭异常捕获
End Function

Msgbox readFile("D:\a.txt")


3.SecureCRT自动登录脚本

SecureCRT提供自动录制脚本,一般建议录好脚本后在修改,我就说下注意的地方:
例子1:
#$language = “VBScript”
#$interface = “1.0″
crt.Screen.Synchronous = True    //将执行过程同步显示在CRT
Sub Main
crt.Screen.Send “username” & chr(13)            //用户名,chr(13)代表回车
crt.Screen.WaitForString “assword:”      //不同设备可能关键字不一样,根据情况修改
crt.Screen.Send “123456” & chr(13)           //输入密码
crt.Screen.WaitForString “>”                 //录制会显示”xx-switch>”,只留下一个>符号匹配就行
crt.Screen.Send “enable” & chr(13)       //进入特权模式,如果要进入全局模式,请自行修改
crt.Screen.WaitForString “assword:”
crt.Screen.Send “123456” & chr(13)
End Sub

例子2:

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

'将执行过程同步显示在CRT

crt.Screen.Synchronous = True 

'主函数
Sub Main
'连接主机192.168.0.1
crt.session.Connect("/telnet 192.168.0.1")
'等待出现登陆用户名提示login,等待时间是10s
crt.screen.WaitForString "login:",10
'输入用户名,回车
crt.screen.send "minico"
crt.screen.send Chr(13)
'等待出现登陆密码提示Password,等待时间是10s
crt.screen.WaitForString "Password:",10
'输入密码,回车
crt.screen.send "123456"
crt.screen.send Chr(13)
End Sub


4.SecureCRT等待字符

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

Sub main
Dim currScreen
Set currScreen = crt.Screen


'下面两句要记得加上,不然可能不能与crt窗口同步
currScreen.Synchronous = True
currScreen.IgnoreEscape = True


Dim i
i = 1
i = int(i)
currScreen.Send "getEcho(){"
currScreen.Send Chr(10)&Chr(13) 
currScreen.WaitForCursor '等待光标移动


Dim matchId
Dim tempPrompt


'Do...Loop 没有while条件时,表示一直循环,需要Exit Do退出
Do
currScreen.ReadString ">", 1
matchId = currScreen.MatchIndex
msgbox matchId
If matchId = 1 Then
msgbox "第"& i &"次出现>"
i = i+1
crt.Screen.Send Chr(13)
If i > 5 then
msgbox "出现了5次,退出了"
i=0
Exit Do
End if
Else
tempPrompt = currScreen.Get(currScreen.CurrentRow,1,currScreen.CurrentRow,currScreen.CurrentColumn)
tempPrompt = Trim(tempPrompt)
If tempPrompt = ">" Or (Right(tempPrompt,1) = ">" And InStr(tempPrompt, "<") = 0) Then
msgbox "出现的临时标示:" & tempPrompt & "长度是:" & Len(tempPrompt)
End If
crt.Screen.Send Chr(13)
msgbox "没出现>,退出"
Exit Do
End If
Loop


currScreen.Send "}"
currScreen.Send Chr(10)&Chr(13) 


szOutput = currScreen.ReadString("error", "warning", "#", 10)


'Select Case语句
Select Case crt.Screen.MatchIndex


Case 0


MsgBox "Timed out!"


Case 1


MsgBox "Found 'error'"


Case 2


MsgBox "Found 'warning'"


Case 3


MsgBox "Found '#'"


End Select


End Sub




0 0