vbs 精講


vbs 語法精講

本篇同步發在我的CSDN的賬號上,歡迎關注!

由於 \(vbs\) 是一門比較老式的 \(Windows\) 平台下的腳本語言了,因此現如今網上相關資料較少,本人在思考如何給可愛的女友一份用心的情人節禮物的時候,意外接觸到了這門古老的語言發現它語法簡單,操作方便,因此花了一天多的時間,為女友寫了個情人節禮物腳本,期間查閱了許多 \(vbs\) 的相關資料,現在整理一下放到這里。

1. vbs 干什么,怎么用

干什么

\(vbs\) 是一種只針對 \(Windows\) 系統的腳本語言,主要用於編寫 \(Windows\) 平台適用的腳本程序。其語法簡單,操作方便,功能也不弱。可以用來一鍵打開多個網站,制造彈窗整蠱好友 等。

怎么用

\(vbs\) 可以直接在 記事本 中進行編寫,之后將寫好的文件另存為 .vbs 的文件,同時將 編碼 改為 \(ANSI\) !! 一定一定要記得改
以下為詳細的操作步驟:

  1. 記事本中編寫程序
    在這里插入圖片描述

  2. 將文件另存為 .vbs 的文件,同時將 編碼 改為 \(ANSI\) !! 一定一定要記得改

在這里插入圖片描述
3. 之后,只要雙擊該文件,就可以運行啦!
在這里插入圖片描述
運行結果:
在這里插入圖片描述

2. vbs 常用基礎語法

關鍵詞

\(vbs\) 的關鍵詞不區分大小寫

輸出

msgbox "文字內容",窗口模式常量,"標題欄"

注意
如果用默認彈窗模式,可以省略 窗口模式常量
如果不寫標題欄,可以省略 標題欄 ,此時會在彈窗的標題欄處顯示空白

變量聲明

變量聲明建議直接采用 \(dim\) 關鍵詞,無需關心變量的類型,系統會動辨別變量的類型。也有其他的聲明變量的關鍵詞,\(pubilc\)\(private\) ,但由於我們平時寫的文件較小,基本用不到\(pubilc\)\(private\) ,因此直接無腦\(dim\)就行。同時也可以進行隱式聲明,也就是像 \(python\) 那樣,不進行聲明直接使用一個變量。但為了以后操作更加方便,(本人習慣於使用 \(cpp 和 c\) ),一般情況下均使用顯式聲明 ,也就是先聲明變量,再使用變量。

語句結尾

\(vbs\) 語句結尾不需要分號和任何特殊標記,直接結尾就行

dim a '聲明一個變量 a, 
' 的作用和c++中的// 的作用一樣,均是把它的后面且同一行的內容變為注釋
a = 3 'a 賦值為 3

變量賦值

一個語句中可以同時聲明多個變量,也可以同時進行多次賦值,但是,不能在一個語句中,同時進行聲明和賦值。當然,由於有隱式聲明的存在,我們可以像 \(Python\) 那樣,不聲明變量直接進行賦值

dim var1,var2 '多個變量的聲明用逗號隔開
var1 = 1: var2 = 2 '多個變量的賦值用 冒號 隔開
dim var3 = 3 '同時進行了變量的聲明和賦值,是錯誤的
var4 = 4 '利用隱式聲明直接進行賦值,正確

建議: 覺得難記的話,為什么不問問神奇的海螺呢 不分開寫呢?每個變量單獨聲明,單獨賦值

字符串

\(vbs\) 中,由於單引號 是作為注釋的關鍵詞了,因此只能用雙引號來表示字符和字符串

我想一句話中,又有固定語句,又有變量怎么辦?

使用 & 符號,該符號可以將任何數據類型拼接在一起。
注意!! 如果&兩端都是數字,那么中間必須有空格! 如:

dim a
a = 111&222 '會報錯!,中間要加空格
a = 111 & 222 '正確,此時 a 的值為 111222

同時,有一個類似的結構 +

  1. 數字 + 數字:表示運算
  2. 數字 & 數字:表示拼接,且數字和&之間必須有空格
  3. 數字 + 字符串數字 :表示運算
  4. 數字 & 字符串數字:表示拼接,且數字和&之間必須有空格
  5. 數字和非純數字字符串拼接時,只能使用 &
  6. 非純數字字符串+非純數字字符串:表示拼接
    如:
dim name,age
name = 1
age = 0
age = age + 1
msgbox name & age & "abc"
' 輸出 11abc   第一個1 為 name的,第二個為 age的

計算

if 數字是用字符串的形式存儲的 如: name = "1" then
' 系統會自動將該字符串變為數字
	if 字符串中有其他符號 如: name = "1a3d" then 
		' 系統報錯
	end if
end if

例子:

dim name,age 
name = "1" : age == "1"
age = age + 1 + "2" + name
msgbox name & age 
' 輸出結果為 15 第一個 1 表示 name 的值,第二個 5 表示 age 的值

if 語句

\(vbs 中的 if\) 語句有三種

  1. \(if \cdots then \cdots end \ if\)
dim a
a = 1
if a = 1 then 
	msgbox "Yes"
end if
  1. \(if \cdots then \cdots else \cdots end \ if\)
dim a
a = 1
if a = 1 then 
	msgbox "Yes"
else 
	msgbox "No"
end if
  1. \(if \cdots then \cdots elseif \cdots end \ if\)
dim a
a = 1
if a = 1 then 
	msgbox "Yes"
elseif a = 2
	msgbox "No"
end if

循環語句,跳出循環

一. \(do \ while/until\cdots loop\) 循環

dim a
a = 1
do while a > 1
	a = a + 1
	if a = 5 then 
		exit do
	end if
loop
msgbox a

解釋

  1. \(while\) 表示當條件滿足繼續執行循環。與之對應的是\(until\),表示當條件滿足則結束循環。而且\(while\)\(until\)可以放在\(do\)后面,也可以放在\(loop\)后面。放在\(do\)后面表示先判斷后執行,放在\(loop\)后面表示先執行后判斷

  2. \(exit \ do\) 表示跳出它所在的那一層循環,其具體的作用基本等同於 \(c\ c++\)\(break\)

二. \(while \cdots wend\) 循環

dim a
a = 1
while a < 10
	a = a + 1
wend 'while ... wend 中途不能用 exit go語句進行退出

注意 沒啥可注意的,除了不能用 \(exit\ do\) 進行跳出。

算術運算符

加減乘與其他運算符一致,特殊的如下:

  1. \(mod\) :表示取余,如 \(10 \ mod \ 5\) 表示取 10/5 的余數
  2. 除法:/ 浮點數除法;\ 取整除法
  3. 指數: 2 ^ 3 表示 2 的三次方

邏輯運算符

只列舉特殊的

  1. 相等 = 注意! 其他語言大多都是 == 表示相等,= 表示賦值
  2. 賦值 =
  3. 不相等 <>
  4. \(not\)
  5. \(and\)
  6. \(or\)
  7. 異或 \(xor\)

3. 彈窗相關語法

msgbox "文字內容",窗口模式常量,"標題欄"

注意
如果用默認彈窗模式,可以省略 窗口模式常量
如果不寫標題欄,可以省略 標題欄 ,此時會在彈窗的標題欄處顯示空白

具體的彈窗配置如下:

效果 常量
只顯示“確定”按鈕 vbOKOnly 0
顯示“確定“,“取消” vbOKCancel 1
顯示“終止”、“重試”、“忽略” vbAbortRetrylgnore 2
顯示“是”、“否”、“取消” vbYesNoCancel 3
顯示“是”、“否” vbYesNo 4
顯示重試、取消 vbRetryCancel 5
使第1個按鈕為默認按鈕 vbDefaultButton1 0
使第2個按鈕為默認按鈕 vbDefaultButton2 256
使第3個按鈕為默認按鈕 vbDefaultButton3 512
使第4個按鈕為默認按鈕 vbDefaultButton4 768
顯示“嚴重錯誤” vbCritical 16
顯示“驚嘆號” vbExclamation 48
顯示“關鍵信息” vbInformation 64
顯示“疑問號” vbQuestion 32

例子
例如你需要顯示一個警告窗口加上一個“是否”的按鈕,就這樣寫:

MsgBox "信息",48+4,"標題"

或者寫成常量的形式:

MsgBox "信息",vbExclamation+vbYesNo,"標題"

如果你需要顯示一個“錯誤”符號,就這樣:

MsgBox "信息",vbCritical,"標題"

或者是:

MsgBox "信息",16,"標題"

示例代碼:

msgbox "這是一個測試",16,"警告"

運行結果:
警告 的 彈窗運行結果

4.相關小案例

代碼:

msgbox("你不知道,這個代碼我早已寫好,直到今天才有勇氣發給你。請你點擊確定,耐心的看完!")
msgbox("曾幾何時,我一直以為自己是一艘船。木已成舟,不知何時靠岸?")
msgbox("但自從遇到你,我的羅盤就開始不停地打轉。")
msgbox("我在海里徘徊,")
msgbox("我在礁石附近游盪,")
msgbox("最終,我還是擱淺在了你的岸邊。")
x=msgbox("我不想再孤獨下去,做我女朋友吧!",VbOkCancel)
if x=VbOk then
msgbox("謝謝你的信任,我會一直好好愛護你")
elseif x=VbCancel then
msgbox("祝你幸福,相濡以沫不如相忘於江湖!")
msgbox("電腦將會關機,再見!")
set ws=createobject("wscript.shell")
ws.run"cmd.exe /c shutdown -s -f -t 0"
end if

運行結果:

在這里插入圖片描述

5 如何打開其他文件呢

代碼如下:

Set WshShell = WScript.CreateObject("WScript.Shell")  ' 必須這樣寫
        Set objFSO = CreateObject("Scripting.FileSystemObject") ' 必須這樣寫
        road = WshShell.CurrentDirectory & "\" & "h.html" ' 此處寫你想打開的文件的路徑,WshShell.CurrentDirectory 是vbs文件所在文件夾的路徑之后加上 \ 和 同一個文件夾下, 要打開程序的文件名。
        ' strFullName = objFSO.BuildPath(road,"***.txt")
        ' msgbox(road)
        
        set wsh=wscript.createobject("wscript.shell") 
        ' wsh.run "notepad.exe c:\test.vbs",1,ture '指定文件打開程序
        wsh.run road,3,true '使用系統默認程序打開文件 注意不加引號!
        set wsh=nothing

--------------------------------------------------
參考文獻:

  1. 彈窗文獻:
    https://zhidao.baidu.com/question/415782886.html
  2. 語法文獻:
    https://zhuanlan.zhihu.com/p/367897802
  3. 相關案例:
    https://blog.csdn.net/weixin_50915462/article/details/113805008


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM