灵活实用VBS入门教程应用篇
程序员文章站
2022-04-09 11:43:19
上一篇文章我们了解了vbs编程的一些基础知识,要更深入地学习还要学习选择结构和循环结构。 选择结构 选择结构,即是对条件进行判断,然后根据判断的结果,选择执行不同的...
上一篇文章我们了解了vbs编程的一些基础知识,要更深入地学习还要学习选择结构和循环结构。
选择结构
选择结构,即是对条件进行判断,然后根据判断的结果,选择执行不同的分支的结构。常见的有if条件语句和select case语句。
●if条件语句
if条件语句又有多种具体的形式,如if…then、if…then…else、if…then…elseif。下面分别用例程来说明。用笔记本编写一个如下内容的vbs脚本:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
end if
运行后,要求用户输入两个数字,第一个数字的值赋给a,第二个数字的值赋给b,然后程序自动判断a和b,如果a的值大于b的值,就弹出信息提示框,显示“第一个数大于第二个数”。注意:then后面的语句不与then在同一行时,判断语句结束后要加一行end if来结束,否则程序会结束。如果是同一行的就不用再加上end if了,如上面的语句可改为:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then msgbox("第一个数大于第二个数")
另外一个程序中可以用多个if语句,我们可以把上面的程序完善一下如下:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
end if
if a=b then
msgbox(“第一个数等于第二个数”)
end if
if a<b then
msgbox(“第一个数小于第二个数”)
end if
我们也可以再换用if的其它语句if…then…else和if…then….elseif来实现相同的作用,如下:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
else
if a=b then
msgbox(“第一个数等于第二个数”)
else
msgbox(“第一个数小于第二个数”)
end if
end if
――――――――――――――――――――――――――――――――――――――
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
elseif a=b then
msgbox(“第一个数等于第二个数”)
else
msgbox(“第一个数小于第二个数”)
end if
●select case语句
select case语句是多分支结构的另一种表示形式,它具有表示直观的特点,结构简单,不容易导致混乱,它的语法形式如下:
select case 变量或表达式
case 表达式1
语句1
case 表达式2
语句2
end select
现在我们用select case语句来写一个数字转换成英文的程序,体验一下select case的优点,let's go!!!
dim a
a=inputbox("输入一个数字","输入")
select case a
case 1
msgbox("你输入的数英文是one")
case 2
msgbox("你输入的数英文是two")
case 3
msgbox("你输入的数英文是tree")
case 4
msgbox("你输入的数英文是four")
end select
从上面,是不是觉得select case语句很直观呢,如果用if语句的话,肯定会很混乱,甚至会把人都给看晕了。还要注意的是无论是条件语句有多少个分支,只要一个分支执行了,其余的分支就不再执行。
循环结构
●for循环语句
for语句是用来控制循环次数已知的循环结构的,语句如下:
for 循环变量=初值 to 终值 [步长]
语句
[exit for] '退出循环语句
next
现在我们编写一个计算从1加到100的整数和的程序,深入去了解for的用法,程序内容如下:
dim s
s=0
for i=1 to 100
s=s+i
next
msgbox(s)
这段程序也是经典的程序之一,它首先声明了一个变量s,然后给s赋个初始值0,for i=1 to 100语句让i随着每一次循环加1,循环体内的语句s=s+i也随着i的增加进行累加,一直加到i=100时结束循环。next语句让循环体进入下一次循环。
●do…loop循环语句
for循环语句用于控制循环次数已知的循环,而do…loop则是用于控制次数未知的循环,根据设定的条件控制循环。它有两种形式,一种是先判断后执行,另一形式是先执行后判断。
先判断后执行语法形式:
do [while/until 条件]
语句
[exit do] ‘退出循环
loop
先执行后判断语法形式:
do
语句
[exit do]
loop [while/until 条件]
下面我们用do…loop语句来改写上面的计算1到100的整数和的程序,如下:
先执行后判断式
dim s
s=0
i=0
do
i=i+1
s=s+i
loop until i>=100
msgbox(s)
先判断后执行式:
dim s
s=0
i=0
do while s<100
i=i+1
s=s+i
loop
msgbox(s)
这两段程序很简单,很容易理解,在此就不再赘述了。
至此,vbs重要的语法结构以及语句已经粗略学习完毕,要更加深入细致系统地去研究,最好找相关的书籍看一下。下面将正式进行vbs编程网吧实战阶段。
实战篇
进行“实战”前我们先来理解什么是shell对象和wsh。shell对象就是微软对一些常用外壳操作函数的封装。象打开或浏览一个文件夹、查找文件、关闭计算机等等,而且还能浏览整个文件系统,获取文件或文件夹的各种信息。由于这些封装是建立在ole自动化服务的基础之上,所以我们可以在vb、web和vbs中方便的使用它们。wsh是windows script host的缩写形式,wsh是windows平台的脚本指令,它的功能十分强大,并且它利用js和vbs脚本语言,来实现其卓越的功能的,除了修改注册表之外,它还可以访问excel文件,也能与网络沟通,当然它最大的优势莫过于它能与操作系统沟通,而修改注册表只是它与操作系统沟通的冰山一角。正是它有如此诸多的优点与实用性,正倍受很多windows用户的青睐。
上面说了wsh利用vbs可以修改系统注册表,但必须先创建一个能与操作系统沟通的对象,再利用该对象的各种方法对注册表进行操作,创建这个对象的方法和格式如下:
dim operatereg
set operatereg=wscript.createobject("wscript.shell")
上面第一行声明了一个变量,而第二行则是利用声明的变量创建一个能与操作系统沟通的shell对象operatereg。
下面就来利用shell对象来关闭一些会给网吧机子带来安全隐患的服务吧。
关闭默认共享
set ds=createobject("wscript.shell")
ds.run "net stop server /y"
关闭wmi服务
set swmi=createobject("wscript.shell")
swmi.run "net stop wmi /y"
禁用guest用户
set sg=createobject("wscript.shell")
sg.run "net user guest /active:no"
关闭telnet服务
set st=createobject("wscript.shell")
st.run "net stop telnet"
利用vbs 实现开机bat延时和无黑屏
如果我们开机要执行名为bar.bat的批处理文件在远程服务器\\server\new\ 中那么就在客户机的c盘根目录下建个批处理,将他命名为run.bat,内容如下:
ping 127.0.0.1 -n 10 (10表示你要延时的秒数 自己根据需要进行设置)
call \\server\new\bar.bat
保存后再在同目录下建个文本写上
set nb=createobject("wscript.shell")
nb.run "run.bat /start",0
保存成vbs文件然后将此文件加入到启动项,重启bat延时和无黑屏就这样实现了。
以上都是vbs的一些简单的编程而已,如果能把vbs学到精通的话,你会发现它的功能非常的强大,很多复杂的功能都可以通过它来实现。现在很多网管都很乐于采用vbs编程来对网吧的机器进行管理。本系列三篇文章仅仅是对vbs进行了简单的了解和实例应用,大家要想更深入地去学习,还要靠平时的努力和积累,最后,祝大家早日可以把vbs学得炉火纯青。
选择结构
选择结构,即是对条件进行判断,然后根据判断的结果,选择执行不同的分支的结构。常见的有if条件语句和select case语句。
●if条件语句
if条件语句又有多种具体的形式,如if…then、if…then…else、if…then…elseif。下面分别用例程来说明。用笔记本编写一个如下内容的vbs脚本:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
end if
运行后,要求用户输入两个数字,第一个数字的值赋给a,第二个数字的值赋给b,然后程序自动判断a和b,如果a的值大于b的值,就弹出信息提示框,显示“第一个数大于第二个数”。注意:then后面的语句不与then在同一行时,判断语句结束后要加一行end if来结束,否则程序会结束。如果是同一行的就不用再加上end if了,如上面的语句可改为:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then msgbox("第一个数大于第二个数")
另外一个程序中可以用多个if语句,我们可以把上面的程序完善一下如下:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
end if
if a=b then
msgbox(“第一个数等于第二个数”)
end if
if a<b then
msgbox(“第一个数小于第二个数”)
end if
我们也可以再换用if的其它语句if…then…else和if…then….elseif来实现相同的作用,如下:
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
else
if a=b then
msgbox(“第一个数等于第二个数”)
else
msgbox(“第一个数小于第二个数”)
end if
end if
――――――――――――――――――――――――――――――――――――――
dim a,b
a=inputbox("输入第一个数字","输入")
b=inputbox("输入第二个数字","输入")
if a>b then
msgbox("第一个数大于第二个数")
elseif a=b then
msgbox(“第一个数等于第二个数”)
else
msgbox(“第一个数小于第二个数”)
end if
●select case语句
select case语句是多分支结构的另一种表示形式,它具有表示直观的特点,结构简单,不容易导致混乱,它的语法形式如下:
select case 变量或表达式
case 表达式1
语句1
case 表达式2
语句2
end select
现在我们用select case语句来写一个数字转换成英文的程序,体验一下select case的优点,let's go!!!
dim a
a=inputbox("输入一个数字","输入")
select case a
case 1
msgbox("你输入的数英文是one")
case 2
msgbox("你输入的数英文是two")
case 3
msgbox("你输入的数英文是tree")
case 4
msgbox("你输入的数英文是four")
end select
从上面,是不是觉得select case语句很直观呢,如果用if语句的话,肯定会很混乱,甚至会把人都给看晕了。还要注意的是无论是条件语句有多少个分支,只要一个分支执行了,其余的分支就不再执行。
循环结构
●for循环语句
for语句是用来控制循环次数已知的循环结构的,语句如下:
for 循环变量=初值 to 终值 [步长]
语句
[exit for] '退出循环语句
next
现在我们编写一个计算从1加到100的整数和的程序,深入去了解for的用法,程序内容如下:
dim s
s=0
for i=1 to 100
s=s+i
next
msgbox(s)
这段程序也是经典的程序之一,它首先声明了一个变量s,然后给s赋个初始值0,for i=1 to 100语句让i随着每一次循环加1,循环体内的语句s=s+i也随着i的增加进行累加,一直加到i=100时结束循环。next语句让循环体进入下一次循环。
●do…loop循环语句
for循环语句用于控制循环次数已知的循环,而do…loop则是用于控制次数未知的循环,根据设定的条件控制循环。它有两种形式,一种是先判断后执行,另一形式是先执行后判断。
先判断后执行语法形式:
do [while/until 条件]
语句
[exit do] ‘退出循环
loop
先执行后判断语法形式:
do
语句
[exit do]
loop [while/until 条件]
下面我们用do…loop语句来改写上面的计算1到100的整数和的程序,如下:
先执行后判断式
dim s
s=0
i=0
do
i=i+1
s=s+i
loop until i>=100
msgbox(s)
先判断后执行式:
dim s
s=0
i=0
do while s<100
i=i+1
s=s+i
loop
msgbox(s)
这两段程序很简单,很容易理解,在此就不再赘述了。
至此,vbs重要的语法结构以及语句已经粗略学习完毕,要更加深入细致系统地去研究,最好找相关的书籍看一下。下面将正式进行vbs编程网吧实战阶段。
实战篇
进行“实战”前我们先来理解什么是shell对象和wsh。shell对象就是微软对一些常用外壳操作函数的封装。象打开或浏览一个文件夹、查找文件、关闭计算机等等,而且还能浏览整个文件系统,获取文件或文件夹的各种信息。由于这些封装是建立在ole自动化服务的基础之上,所以我们可以在vb、web和vbs中方便的使用它们。wsh是windows script host的缩写形式,wsh是windows平台的脚本指令,它的功能十分强大,并且它利用js和vbs脚本语言,来实现其卓越的功能的,除了修改注册表之外,它还可以访问excel文件,也能与网络沟通,当然它最大的优势莫过于它能与操作系统沟通,而修改注册表只是它与操作系统沟通的冰山一角。正是它有如此诸多的优点与实用性,正倍受很多windows用户的青睐。
上面说了wsh利用vbs可以修改系统注册表,但必须先创建一个能与操作系统沟通的对象,再利用该对象的各种方法对注册表进行操作,创建这个对象的方法和格式如下:
dim operatereg
set operatereg=wscript.createobject("wscript.shell")
上面第一行声明了一个变量,而第二行则是利用声明的变量创建一个能与操作系统沟通的shell对象operatereg。
下面就来利用shell对象来关闭一些会给网吧机子带来安全隐患的服务吧。
关闭默认共享
set ds=createobject("wscript.shell")
ds.run "net stop server /y"
关闭wmi服务
set swmi=createobject("wscript.shell")
swmi.run "net stop wmi /y"
禁用guest用户
set sg=createobject("wscript.shell")
sg.run "net user guest /active:no"
关闭telnet服务
set st=createobject("wscript.shell")
st.run "net stop telnet"
利用vbs 实现开机bat延时和无黑屏
如果我们开机要执行名为bar.bat的批处理文件在远程服务器\\server\new\ 中那么就在客户机的c盘根目录下建个批处理,将他命名为run.bat,内容如下:
ping 127.0.0.1 -n 10 (10表示你要延时的秒数 自己根据需要进行设置)
call \\server\new\bar.bat
保存后再在同目录下建个文本写上
set nb=createobject("wscript.shell")
nb.run "run.bat /start",0
保存成vbs文件然后将此文件加入到启动项,重启bat延时和无黑屏就这样实现了。
以上都是vbs的一些简单的编程而已,如果能把vbs学到精通的话,你会发现它的功能非常的强大,很多复杂的功能都可以通过它来实现。现在很多网管都很乐于采用vbs编程来对网吧的机器进行管理。本系列三篇文章仅仅是对vbs进行了简单的了解和实例应用,大家要想更深入地去学习,还要靠平时的努力和积累,最后,祝大家早日可以把vbs学得炉火纯青。
推荐阅读
-
域乎创新应用之人力资源篇:H2Chain催生灵活用工快速变革
-
灵活实用的VBS入门教程基础篇
-
灵活实用VBS入门教程应用篇
-
vbs实用软件自造——Windows脚本应用实例
-
VBS的各种应用的比较实用小代码
-
DevExtreme初级入门教程(React篇) - 应用程序模板(Part 2) DevExtremeReactjavascriptdevexpress
-
DevExtreme初级入门教程(React篇) - 应用程序模板(Part 1) DevExtremeReactJavaScriptHTML5
-
域乎创新应用之人力资源篇:H2Chain催生灵活用工快速变革
-
灵活实用的VBS入门教程基础篇
-
灵活实用VBS入门教程应用篇