1.返回当前的目录
Dim objfso
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