首頁 > 軟體

VBS指令碼基礎語法範例講解

2022-04-19 19:01:04

引言

最近在學習VBS語言的時候,搜尋了不少資料,但是往往只是介紹一下什麼整人程式碼、表白程式碼之類的,很少有基礎的語法講解,因此,我在這裡寫一篇博文來進行一下VBS基礎語法的講解。

一、編輯VBS的相關軟體

對於基於VBS的程式設計,我們可以直接使用記事本來進行編寫。

開啟的方式為:

1、在桌面右鍵然後點選新建,接下來點選新建一個記事本即可;

2、按下 Windows + R,這樣可以開啟 cmd,然後輸入 notepad(這個其實就是新建了一個記事本檔案了啦。),即就可以新建一個記事本了。

顯示的效果圖片如下圖所示:

當你寫好一個程式碼後,點選記事本上方的檔案,然後點選另存為,在儲存的時候,請選擇 “所有檔案” 這個選項,然後把這個檔案的擴充套件名改為:.vbs,這樣操作以後就會在指定的位置處生成一個 vbs 檔案,然後雙擊這個檔案即就可以進行執行了。

二、變數的定義

對於任何一個程式語言,我們首先關心的是如何定義一個變數。

在Visual Basic Script 中,定義一個變數的正規模式是:dim 變數名

當然,如果你不定義變數而是直接使用也是沒有任何問題的,就像Python那樣,可以不用宣告而直接使用,但是我們在這裡還是建議遵循一下變數的先宣告,後使用的原則。

以下所示即就是最終的執行效果以及原始碼。

這裡的 msgbox 是一個vbs中的關鍵字,作用是彈出一個彈框,顯示你想要顯示的資訊。

msgbox 可以顯示各種型別的變數。

一點說明

在vbs中,變數的型別與其他語言基本上都是一樣的,比如:字串、整型數、浮點型數、布林型數位(True 和 False),但是,我們在這裡不需要指明某一個變數具體是哪一種型別的變數,編譯器是會直接自己識別變數的型別的。

三、輸入與輸出

1、輸入

在 vbs 中,想要輸入是需要首先彈出來一個彈框,然後進行輸入的。

例如下述程式碼:

dim str
str=inputbox("please input your name here","Title","hhhhhhhhh")
msgbox str

這裡是定義了一個 str 變數來接收 inputbox 所得到的一個變數值,然後利用我們前面所說的一個 msgbox 進行展示。

在 inputbox 中,第一個引數是彈框的提示資訊,第二個引數是彈框的標題,第三個引數是輸入框的一個預設值。

效果圖如下:

圖1、

圖2、

圖3、

圖4、

2、輸出

在這裡的輸出方式其實我們已經在前文中使用了很多次了,就是上述的那個 msgbox 關鍵字,它的作用就是彈出一個彈框,然後顯示出你想要顯示的資訊,比如:我們在第一個例子中輸出的數位 30, 以及我們在第二個例子中所顯示的字串: “江月–哈哈哈”,總之就是由 msgbox 這個彈框進行顯示資訊,相當於 C++ 中的 cout,也相當於是 Python 中的 print 等等,是一個輸出,只是與其他語言的輸出方式不太一樣罷了。

四、判斷語句

接下來,我們首先介紹一下判斷語句,然後再去看看回圈語句,顯示判斷語句:

如果你接觸過其他的程式語言,你一定對判斷語句一點都不陌生,在vbs中也是同樣的,語法也就是 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 這個是說,顯示兩個可供選擇的選項框啦!

上述程式碼顯然是一個表白程式碼,也可以說是一個整人程式碼了啦,如果別人不同意,那就直接關機。

這裡從上述程式碼中顯然可以比較容易的看出判斷語句的具體語法啦,通過上述例子即就是可以發現判斷的語句的基本語法,這裡應該是不用在多說的了,就是強調一下,儘量要進行程式碼縮排,然後就是要end if。雖然程式碼不縮排也沒有問題,但是為了越蘇方便,我們極力推薦進行語法的縮排。

上述程式碼效果如下:

圖1、

圖2、

圖3、

圖4、

這裡是直接顯示了兩種不同的結果。

其中的關機程式碼為:

set sh=wscript.createobject("wscript.shell")
sh.run"shutdown -s -t 300"

這個是說五分鐘以後進行關機的操作了。

當然,悄悄告訴你一下啦,有一個方法可以使你終止掉這種自動關機:

首先Windows+R開啟cmd,然後,輸入:

shutdown -a

這樣就會終止掉自動關機啦。

這個你可以親自試一試,當然,你也可以在工作管理員中進行關閉程序,

下面的這個例子就是用的這種方法啦。(迴圈語句中的)

五、迴圈語句

1、do – loop 迴圈

在vbs中有兩種迴圈方式,這是其中一種啦,具體語法為:

do
	msgbox"Dead loop ! "
loop

當然,我們發現以上的程式碼中是一個死迴圈,沒有結束條件,如果你開啟軟體你就會發現關不掉了。

(如果你想要強制關閉的話,還是有方法的啦,這時,你需要開啟工作管理員手動直接關閉這個程序,具體的操作為:快捷鍵:Ctrl + Alt + Del,然後點選工作管理員,找到對應的程序,如下圖所示:

這裡我是開啟了三個,在這個介面中呢,我們點選相應的程序,然後點選結束任務即就是實現了該任務的關閉操作。)

上面的這一段程式碼可以認為是第二個最簡單的整人程式碼啦。

當然,我們還是希望一個迴圈是可以結束的,而不是一直迴圈下去,因此,下面介紹三種 do – loop 迴圈的結束方法,

1)until

在這裡,我們直接使用範例來進行演示,這樣可能更容易理解一些。

範例:

dim str
do until str="yes"
	msgbox"do you love me ?"
	str=inputbox("yes or no", "ANSWER", "yes")
loop

執行的效果圖如下所示:

圖1、

圖2、

圖3、

圖4、

當然,如果你不輸入yes,那麼程式就是會一直執行下去的啦。

2)while

在此處,我們同樣用範例的形式進行展示:

dim str
do 
	msgbox"do you love me ?"
	str=inputbox("yes or no", "ANSWER", "yes")
loop while str<>"yes"

在這段程式碼中,<> 的意思是不等於,即就是說當輸入不等於yes的時候會一直執行這個程式,當輸入等於了yes,那麼就會使得迴圈終止掉了了啊。
當然了,這段程式碼與上一段程式碼的執行結果是完全一樣的啦,我們在此處就不多做展示了。

3)exit do

在使用 exit do 的時候是需要我們利用 if 這個條件判斷來進行實現的:

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、

這個即就是用exit do 的方法來實現迴圈的切斷了啦。

2、for – next 迴圈

接下來我們來介紹一下 for–next 迴圈的語法啦。

首先,解釋一下,這種迴圈的作用,其實這個迴圈就像是 C++ 中的 for 或者 Python 中的 for,都是去遍歷一個陣列,從 0 開始(當然你也是可以設定從別的地方開始的啦),然後,每次加一個步長( C++ 中的步長直接寫為了自加加,而 Python 中可以使用 range 函數來進行設定步長的,但是在這裡,vbs 語言無法直接設定步長,每一次只能加一啦,就是步長是隻能為一的了啦):

具體的範例如下;

msgbox"show some numbers"
for i=0 to 3
	msgbox "the number now is :  "&i
next

這裡說一下,我們把不同型別的變數進行同時輸出的方法是使用一個符號:& 來進行連線。

執行的結果如下所示:

圖1、

圖2、

圖3、

圖4、

圖5、

圖6、

總結

以上便是一些常用的基礎語法,雖然函數之類的語法還沒有介紹到,但是,本文已經夠長了,太長的文章可能大家都讀不下去啊,因此,本文到這裡就先結束了,後續,我將會在寫一篇VBS精進的部分來講解函數的宣告等其他的語法以及其他的一些應用範例或者實戰,希望大家會持續關注啦~~

到此這篇關於VBS指令碼基礎語法的文章就介紹到這了,更多相關VBS基礎語法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com