您好,登錄后才能下訂單哦!
本文參考:VBS基礎教程。學習了vbs的基礎語法,進行了一些練習,下面是我編寫的demo。
vbs01.vbs
REM
和'
單引號作用都是用于注釋,相當于c語言中"//"。Dim
用來聲明變量,vbs支持動態數據類型,即不用事先聲明變量的類型。Inputbox
作用是打開對話框,獲取用戶輸入,它返回的數據類型是字符串,Msgbox
則用于顯示。REM 輸入姓名并回顯
Dim name
Dim msg
msg = "please input your name:"
name = Inputbox(msg, "Inputbox", "zhangsan") 'param1是提示用戶的語句,param2是對話框標題,param3是輸入欄默認值。
Msgbox name,,"Msgbox" 'param1是輸出內容,param2是對話框標題,它們之間存在兩個“,”。
vbs02.vbs
REM 輸入長方形的長和寬,計算其面積并輸出
Dim width, length, area
Dim prompt
prompt = "please input width:"
width = Inputbox(prompt)
prompt = "please input length:"
length = Inputbox(prompt)
area = width * length
Msgbox area
vbs03.vbs
REM 輸入圓的半徑,計算圓面積并輸出
const PI = 3.14 'const關鍵字限制PI在之后的程序中無法被修改
Dim r, area
Dim prompt
prompt = "please input r:"
r = Inputbox(prompt)
area = PI * r^2 ' “^”代表n的幾次方,c語言中代表xor(異或)。
Msgbox area
vbs04.vbs
REM 學習條件控制語句
Dim num1, num2
Dim prompt
prompt = "please input num1:"
num1 = CDbl(Inputbox(prompt)) 'CDbl用于將返回值數據類型轉換為數字(×××或浮點型)
prompt = "please input num2:"
num2 = CDbl(Inputbox(prompt))
if num1 > num2 then
Msgbox "num1 > num2"
else if num1 = num2 then
Msgbox "num1 = num2"
else
Msgbox "num1 < num2"
end if
end if
注:if
和end if
數量要一致,否則會造成語法錯誤。
vbs05.vbs
REM 學習switch和case結構
Dim n
Dim prompt
prompt = "please input a num between 1 and 3"
n = int(Inputbox(prompt))
select case n
case 1
Msgbox "happy"
case 2
Msgbox "lucky"
case 3
Msgbox "nervous"
case else
Msgbox "input error"
end select
vbs06.vbs
REM 學習循環語句(do...loop),由用戶輸入密碼,如果認證失敗則讓用戶繼續輸入
const PWD = "123456"
dim passwd
do
passwd = Inputbox("please input your password:")
if PWD = passwd then
Msgbox "auth success!"
exit do
end if
loop
vbs07.vbs
REM 學習循環語句(do...loop),由用戶輸入密碼,如果認證失敗則讓用戶繼續輸入,認證次數上限為3次
const LIMIT = 3
const PWD = "admin_123"
Dim count, passwd
count = 0
do
passwd = Inputbox("please input your password")
if PWD = passwd then
Msgbox PWD
exit do
end if
count = count + 1
if count >= LIMIT then
Msgbox "wrong times too many!"
exit do
end if
loop
vbs08.vbs
REM 學習循環語句(do...while),由用戶輸入密碼,如果認證失敗則讓用戶繼續輸入,認證次數上限為3次
const LIMIT = 3
const PWD = "admin_123"
Dim count, passwd
count = 0
do while count < LIMIT
passwd = Inputbox("please input your password")
if PWD = passwd then
Msgbox PWD
exit do
end if
count = count + 1
'Msgbox "wrong times " + cstr(count) 'cstr函數將數字轉換為字符串
MsgBox "wrong times " & count '"&"用于連接字符串
loop
vbs09.vbs
REM 學習循環語句(for...next)
Dim i, j
i = 0
j = 0
for i = 1 to 9
for j = 1 to 9
str = str & i * j & " "
next
str = str & vbCrlf 'vbCrlf相當于回車鍵
next
Msgbox str
vbs10.vbs
遍歷CRT打開的所有tabs,查找連接的遠程服務器的IP地址等于REMOTE_ADDR的tab,則激活對應tab并輸出該IP地址。
'遠程主機IP
Const REMOTE_ADDR = "192.168.253.133"
i = 0
'獲取打開的Tab頁面數
tabCount = Crt.GetTabCount
'遍歷所有Tab,獲取連接的遠程服務器的IP地址
Do While i < tabCount
Set tabObj = Crt.GetTab(i + 1)
'獲取遠程服務器的IP地址
remoteAddr = Crt.Session.remoteAddress
If REMOTE_ADDR = remoteAddr Then
tabObj.Activate
Call Crt.Dialog.MessageBox(remoteAddr, "", ICON_INFO)
Exit Do
End If
i = i + 1
Loop
vbs11.vbs
REM 學習數組使用
Dim str(2), i '定義數組str,括號內數字為2,但實際數組大小為3,因為下標是從0開始計算
Dim ret
for i = 0 to 2
str(i) = InputBox("please input any string")
ret = ret & str(i) & " "
next
MsgBox ret
vbs12.vbs
REM 函數學習(function)
function Max(a, b)
if a > b then
Max = a '通過將變量值賦值給函數名傳遞函數返回值
else
Max = b
end if
end function
Dim a, b
a = int(InputBox("please input a number:"))
b = int(InputBox("please input a number:"))
MsgBox "The bigger number is " & Max(a, b)
與Function
作用相同的關鍵字還有Sub
。此處參考:vbscript中Function與Sub的區別。
一、Function與Sub概述:
Sub(子過程): sub是Subroutines的縮寫,它的意思是子程序,它是將一段具有某種特定功能的語句區塊單獨編寫成一個獨立的程序,給予特定名稱 。Function(函數):表示每個輸入值對應唯一輸出值的一種對應關系 ,具備 Sub 的功能。
二、Function與Sub異同
相同點:
1)Sub和Function都是 vbscript 的過程,
2)可以傳遞參數,
3)是業務操作或業務處理的封裝,都可以被重復調用。不同點:
1)Sub無返回值,而Function可以有返回值。
2)Sub關心過程,而Function關心結果,簡明的說,Sub就好比c語言中返回類型為void的函數,而Function的返回類型則可以是int和float等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。