VBS是windows內建指令碼,用記事本直接編輯,將檔案字尾名改為「vbs」即可執行。
第一個指令碼:
dim a
a="Hello,world!!"
msgbox a
其中「msgbox」如python的「」print一樣是列印的意思。
變數以dim命名,並且可以用「:」號在命名同時賦值。
如:dim a:4
我們可以用「inputbox」進行輸入,達到互動效果
dim name
name=inputbox("請輸入你的名字。")
msgbox "你的名字叫"&name
常數用「const」命名,目的是為了減少程式碼量以及增加規範。
const a="nihao,china"
msgbox a
如:
dim a,b
a=46
'a=15151
rem b=78
b=77
msgbox a,b
「*」表示乘法
「**」表示平方
「/」表示除法
「+」純數位表示加法,字串表示拼接
a=12+5和a=「12」+"5"意義是不一樣的
true表示正確;false表示錯誤
如
dim a,b
a=15
b=12
msgbox a>b
輸出結果為true,可以用布林型別判斷比較結果。
常見的if判斷語句:
if then……end if
if then……else…… end if
if then ……else if……else……end if end if
例子
1.
dim a,b,c,d
a=inputbox("請輸入a的值:")
b=inputbox("請輸入b的值:")
c=inputbox("請輸入c的值:")
d=a*2+b*2
c=int(c)
if c=d then
msgbox "你是對的!!!!"
else
msgbox "你是錯的!!!"
end if
dim a
a=inputbox("請輸入一個大於50的數位")
a=int(a)
if a>50 then
msgbox "正確"
else if a=50 then
msgbox "不要輸入50!!!!"
else
msgbox "錯誤"
end if
end if
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num
有多少個「if」就要有多少的end if結尾!
利用select case +變數實現。看個例子就明白,跟DOS命令的goto很像。
dim a
a=inputbox(「請輸入小於4的數位」)
a=int(a)
select case a
case 1
msgbox "one"
case 2
msgbox "two"
case 3
msgbox "three"
case else
msgbox "你輸入的數位不符合要求"
end select
利用do……exit do……loop迴圈實現
dim password,ctr
ctr=0
const pass ="123456"
do
password=inputbox("請輸入密碼:")
if password=pass then
msgbox "密碼輸入成功!"
exit do
else
if ctr=3 then
msgbox "你的輸入次數有限,程式將關閉!!!"
exit do
else
ctr=ctr+1
msgbox"密碼出錯,請重新輸入"
end if
end if
loop
dim count
for count=0 to 10
msgbox count
next
dim count
count =0
do while count<11
msgbox count
count=count+1
loop
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num
dim i,j,k
for i=1 to 9
for j=1 to 9
k=i*j
msgbox k
next
next
指令碼會逐一輸出結果。需要注意的是,兩個for迴圈,第一個每完成一次,第二個會完成全部。
陣列由()定義,並且從0開始
如定義陣列裡有十個元素,並對前三個元素進行賦值:
dim name(9)
name(0)=12
name(1)="mylove"
name(2)=5.26
msgbox name(2)
跟變數一樣,陣列也可以同時被定義呼叫:
dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("請輸入第"&n+1&"個學生的名字")
high(n)=inputbox("請輸入第"&n+1&"個學生的身高")
mark(n)=inputbox("請輸入第"&n+1&"個學生的成績")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)
此時通過使用者輸入來實現陣列賦值
二維是指行跟列
如 dim name(1,1)表示定義一個兩行兩列的二維陣列。第一個數位代表行數,第二個代表列數。
其實就是個表格,可以用來收集使用者資料
如:
1.
dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("請輸入第"&n+1&"個學生的名字")
high(n)=inputbox("請輸入第"&n+1&"個學生的身高")
mark(n)=inputbox("請輸入第"&n+1&"個學生的成績")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)
dim msg(1,1)
dim i,j
for i=0 to 1
for j=0 to 1
dim opt
select case 1
case 0
opt="name"
case 1
opt ="age"
end select
msg(i,j)=inputbox("請輸入第"& i+1 &"個人的"& opt)
next
for i=0 to 1
for j= 0 to 1
msgbox msg(i,j)
function fun(name)
name=inputbox("請輸入你的名字")
msgbox "吃飯啦!!!!"&name
end function
call fun(name)
用call+函數名呼叫函數!
定義函數進行互動
dim num1,num2
num1=inputbox("請輸入第一個數位")
num2=inputbox("請輸入第二個數位")
num1=int(num1)
num2=int(num2)
function fun(num1,num2)
num=num1*num2
msgbox num
end function
call fun(num1,num2)
內建函數不需要定義,直接能呼叫。可以百度查詢,有很多。
如:
dim a
a=now()/time()/date()
msgbox a
子程式跟函數差不多,定義時將function換成sub。
如:
sub msg(name,age)
msgbox "hello,word"&name
end sub
call msg("xiaohua",14)
return msg("xioahua",14)
set ws=wscript.createobject("wscript.shell")
ws.run"C:\Windows\System32\cmd.exe"
這裡的ws.run可換成ws.exec,檔案路徑最好是絕對路徑,就是從碟符到檔名都要寫清楚。
當然也可以不用絕對路徑,前提是你要開啟的檔案路徑可以在指令碼執行路徑後面追加。
set ws=wscript.createobject("wscript.shell")
ws.run"notepad.exe"
多敲程式碼,多練練。其實就入門而言,我發現很多程式語言都有許多相似之處。如python,php,JavaScript等,入門學的內容其實差不多。要注意分號,冒號,花括號等等符號的使用,熟練日常類和函數的使用。程式碼敲多了,就會有一種觸類旁通的快感。