VBS脚本基础语法实例讲解

 更新时间:2022年4月19日 23:43  点击:1154 作者:hhh江月

引言

最近在学习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基础语法内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/m0_54218263/article/details/115689315

[!--infotagslink--]

相关文章