VBS腳本基礎(chǔ)語(yǔ)法實(shí)例講解
引言
最近在學(xué)習(xí)VBS語(yǔ)言的時(shí)候,搜索了不少資料,但是往往只是介紹一下什么整人代碼、表白代碼之類的,很少有基礎(chǔ)的語(yǔ)法講解,因此,我在這里寫一篇博文來(lái)進(jìn)行一下VBS基礎(chǔ)語(yǔ)法的講解。
一、編輯VBS的相關(guān)軟件
對(duì)于基于VBS的編程,我們可以直接使用記事本來(lái)進(jìn)行編寫。
打開的方式為:
1、在桌面右鍵然后點(diǎn)擊新建,接下來(lái)點(diǎn)擊新建一個(gè)記事本即可;
2、按下 Windows + R,這樣可以打開 cmd,然后輸入 notepad(這個(gè)其實(shí)就是新建了一個(gè)記事本文件了啦。),即就可以新建一個(gè)記事本了。
顯示的效果圖片如下圖所示:
當(dāng)你寫好一個(gè)代碼后,點(diǎn)擊記事本上方的文件,然后點(diǎn)擊另存為,在保存的時(shí)候,請(qǐng)選擇 “所有文件” 這個(gè)選項(xiàng),然后把這個(gè)文件的擴(kuò)展名改為:.vbs,這樣操作以后就會(huì)在指定的位置處生成一個(gè) vbs 文件,然后雙擊這個(gè)文件即就可以進(jìn)行運(yùn)行了。
二、變量的定義
對(duì)于任何一個(gè)編程語(yǔ)言,我們首先關(guān)心的是如何定義一個(gè)變量。
在Visual Basic Script 中,定義一個(gè)變量的正規(guī)模式是:dim 變量名
當(dāng)然,如果你不定義變量而是直接使用也是沒(méi)有任何問(wèn)題的,就像Python那樣,可以不用聲明而直接使用,但是我們?cè)谶@里還是建議遵循一下變量的先聲明,后使用的原則。
以下所示即就是最終的運(yùn)行效果以及源代碼。
這里的 msgbox 是一個(gè)vbs中的關(guān)鍵字,作用是彈出一個(gè)彈框,顯示你想要顯示的信息。
msgbox 可以顯示各種類型的變量。
一點(diǎn)說(shuō)明
在vbs中,變量的類型與其他語(yǔ)言基本上都是一樣的,比如:字符串、整型數(shù)、浮點(diǎn)型數(shù)、布爾型數(shù)字(True 和 False),但是,我們?cè)谶@里不需要指明某一個(gè)變量具體是哪一種類型的變量,編譯器是會(huì)直接自己識(shí)別變量的類型的。
三、輸入與輸出
1、輸入
在 vbs 中,想要輸入是需要首先彈出來(lái)一個(gè)彈框,然后進(jìn)行輸入的。
例如下述代碼:
dim str str=inputbox("please input your name here","Title","hhhhhhhhh") msgbox str
這里是定義了一個(gè) str 變量來(lái)接收 inputbox 所得到的一個(gè)變量值,然后利用我們前面所說(shuō)的一個(gè) msgbox 進(jìn)行展示。
在 inputbox 中,第一個(gè)參數(shù)是彈框的提示信息,第二個(gè)參數(shù)是彈框的標(biāo)題,第三個(gè)參數(shù)是輸入框的一個(gè)默認(rèn)值。
效果圖如下:
圖1、
圖2、
圖3、
圖4、
2、輸出
在這里的輸出方式其實(shí)我們已經(jīng)在前文中使用了很多次了,就是上述的那個(gè) msgbox 關(guān)鍵字,它的作用就是彈出一個(gè)彈框,然后顯示出你想要顯示的信息,比如:我們?cè)诘谝粋€(gè)例子中輸出的數(shù)字 30, 以及我們?cè)诘诙€(gè)例子中所顯示的字符串: “江月–哈哈哈”,總之就是由 msgbox 這個(gè)彈框進(jìn)行顯示信息,相當(dāng)于 C++ 中的 cout,也相當(dāng)于是 Python 中的 print 等等,是一個(gè)輸出,只是與其他語(yǔ)言的輸出方式不太一樣罷了。
四、判斷語(yǔ)句
接下來(lái),我們首先介紹一下判斷語(yǔ)句,然后再去看看循環(huán)語(yǔ)句,顯示判斷語(yǔ)句:
如果你接觸過(guò)其他的編程語(yǔ)言,你一定對(duì)判斷語(yǔ)句一點(diǎn)都不陌生,在vbs中也是同樣的,語(yǔ)法也就是 if,else,else if等等。具體的書寫略有不同啦,例如下述的代碼:
dim str str=msgbox("Do you love me ?", vbYesNo, "LOVE") if str=vbYes then msgbox"I love you too, I think we will be happy!" else msgbox"I will close your computer!" set sh=wscript.createobject("wscript.shell") sh.run"shutdown -s -t 300" end if
vbYesNo 這個(gè)是說(shuō),顯示兩個(gè)可供選擇的選項(xiàng)框啦!
上述代碼顯然是一個(gè)表白代碼,也可以說(shuō)是一個(gè)整人代碼了啦,如果別人不同意,那就直接關(guān)機(jī)。
這里從上述代碼中顯然可以比較容易的看出判斷語(yǔ)句的具體語(yǔ)法啦,通過(guò)上述例子即就是可以發(fā)現(xiàn)判斷的語(yǔ)句的基本語(yǔ)法,這里應(yīng)該是不用在多說(shuō)的了,就是強(qiáng)調(diào)一下,盡量要進(jìn)行代碼縮進(jìn),然后就是要end if。雖然代碼不縮進(jìn)也沒(méi)有問(wèn)題,但是為了越蘇方便,我們極力推薦進(jìn)行語(yǔ)法的縮進(jìn)。
上述代碼效果如下:
圖1、
圖2、
圖3、
圖4、
這里是直接顯示了兩種不同的結(jié)果。
其中的關(guān)機(jī)代碼為:
set sh=wscript.createobject("wscript.shell") sh.run"shutdown -s -t 300"
這個(gè)是說(shuō)五分鐘以后進(jìn)行關(guān)機(jī)的操作了。
當(dāng)然,悄悄告訴你一下啦,有一個(gè)方法可以使你終止掉這種自動(dòng)關(guān)機(jī):
首先Windows+R打開cmd,然后,輸入:
shutdown -a
這樣就會(huì)終止掉自動(dòng)關(guān)機(jī)啦。
這個(gè)你可以親自試一試,當(dāng)然,你也可以在任務(wù)管理器中進(jìn)行關(guān)閉進(jìn)程,
下面的這個(gè)例子就是用的這種方法啦。(循環(huán)語(yǔ)句中的)
五、循環(huán)語(yǔ)句
1、do – loop 循環(huán)
在vbs中有兩種循環(huán)方式,這是其中一種啦,具體語(yǔ)法為:
do msgbox"Dead loop ! " loop
當(dāng)然,我們發(fā)現(xiàn)以上的代碼中是一個(gè)死循環(huán),沒(méi)有結(jié)束條件,如果你打開軟件你就會(huì)發(fā)現(xiàn)關(guān)不掉了。
(如果你想要強(qiáng)制關(guān)閉的話,還是有方法的啦,這時(shí),你需要打開任務(wù)管理器手動(dòng)直接關(guān)閉這個(gè)進(jìn)程,具體的操作為:快捷鍵:Ctrl + Alt + Del,然后點(diǎn)擊任務(wù)管理器,找到對(duì)應(yīng)的進(jìn)程,如下圖所示:
這里我是打開了三個(gè),在這個(gè)界面中呢,我們點(diǎn)擊相應(yīng)的進(jìn)程,然后點(diǎn)擊結(jié)束任務(wù)即就是實(shí)現(xiàn)了該任務(wù)的關(guān)閉操作。)
上面的這一段代碼可以認(rèn)為是第二個(gè)最簡(jiǎn)單的整人代碼啦。
當(dāng)然,我們還是希望一個(gè)循環(huán)是可以結(jié)束的,而不是一直循環(huán)下去,因此,下面介紹三種 do – loop 循環(huán)的結(jié)束方法,
1)until
在這里,我們直接使用實(shí)例來(lái)進(jìn)行演示,這樣可能更容易理解一些。
實(shí)例:
dim str do until str="yes" msgbox"do you love me ?" str=inputbox("yes or no", "ANSWER", "yes") loop
運(yùn)行的效果圖如下所示:
圖1、
圖2、
圖3、
圖4、
當(dāng)然,如果你不輸入yes,那么程序就是會(huì)一直執(zhí)行下去的啦。
2)while
在此處,我們同樣用實(shí)例的形式進(jìn)行展示:
dim str do msgbox"do you love me ?" str=inputbox("yes or no", "ANSWER", "yes") loop while str<>"yes"
在這段代碼中,<> 的意思是不等于,即就是說(shuō)當(dāng)輸入不等于yes的時(shí)候會(huì)一直執(zhí)行這個(gè)程序,當(dāng)輸入等于了yes,那么就會(huì)使得循環(huán)終止掉了了啊。
當(dāng)然了,這段代碼與上一段代碼的執(zhí)行結(jié)果是完全一樣的啦,我們?cè)诖颂幘筒欢嘧稣故玖恕?/p>
3)exit do
在使用 exit do 的時(shí)候是需要我們利用 if 這個(gè)條件判斷來(lái)進(jìn)行實(shí)現(xiàn)的:
dim str do msgbox"Do you love me ?" str=inputbox("yes or no?", "ANSWERING", "yes") if str="yes" then msgbox"I love you too!!" exit do else msgbox"Please say that you love me!!" msgbox"Please answer again!!" end if loop
效果展示圖片如下所示:
圖1、
圖2、
圖3、
圖4、
圖5、
圖6、
圖7、
圖8、
這個(gè)即就是用exit do 的方法來(lái)實(shí)現(xiàn)循環(huán)的切斷了啦。
2、for – next 循環(huán)
接下來(lái)我們來(lái)介紹一下 for–next 循環(huán)的語(yǔ)法啦。
首先,解釋一下,這種循環(huán)的作用,其實(shí)這個(gè)循環(huán)就像是 C++ 中的 for 或者 Python 中的 for,都是去遍歷一個(gè)數(shù)組,從 0 開始(當(dāng)然你也是可以設(shè)置從別的地方開始的啦),然后,每次加一個(gè)步長(zhǎng)( C++ 中的步長(zhǎng)直接寫為了自加加,而 Python 中可以使用 range 函數(shù)來(lái)進(jìn)行設(shè)置步長(zhǎng)的,但是在這里,vbs 語(yǔ)言無(wú)法直接設(shè)置步長(zhǎng),每一次只能加一啦,就是步長(zhǎng)是只能為一的了啦):
具體的實(shí)例如下;
msgbox"show some numbers" for i=0 to 3 msgbox "the number now is : "&i next
這里說(shuō)一下,我們把不同類型的變量進(jìn)行同時(shí)輸出的方法是使用一個(gè)符號(hào):& 來(lái)進(jìn)行連接。
運(yùn)行的結(jié)果如下所示:
圖1、
圖2、
圖3、
圖4、
圖5、
圖6、
總結(jié)
以上便是一些常用的基礎(chǔ)語(yǔ)法,雖然函數(shù)之類的語(yǔ)法還沒(méi)有介紹到,但是,本文已經(jīng)夠長(zhǎng)了,太長(zhǎng)的文章可能大家都讀不下去啊,因此,本文到這里就先結(jié)束了,后續(xù),我將會(huì)在寫一篇VBS精進(jìn)的部分來(lái)講解函數(shù)的聲明等其他的語(yǔ)法以及其他的一些應(yīng)用實(shí)例或者實(shí)戰(zhàn),希望大家會(huì)持續(xù)關(guān)注啦~~
到此這篇關(guān)于VBS腳本基礎(chǔ)語(yǔ)法的文章就介紹到這了,更多相關(guān)VBS基礎(chǔ)語(yǔ)法內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。