Response的方法
write方法:将指定内容输出,如果需要输出多个数据,需用&连接
注意:如果在同一行中输出,可用=完成。
例:
Response.write “this is test”&”邹”&”杨”
执行结果:this is test邹杨
<% = this is test邹杨 %>
执行结果:this is test邹杨
Dim a,name
name="请输入你的名字:"
a=inputbox("请输入数值:","输入框")
‘ inputbox返回的值是“字符串”
a=int(a)
‘ int函数将返回值转换为“数值”
if a<3 then
msgbox(inputbox(name,"输入框"))
‘ 我曾经错误“if a<3 then msgbox(inputbox(name,"输入框"))”输入为一行
else
msgbox("你输入的数值大于3")
end if
‘我曾经错误endif“中间有空格”
‘ 我想利用if语句循环三次输入,但if是选择判断语句
解决方法:
Dim num,a,name
‘ num是计数器
num=0
‘我曾经的错误是使用了:set num=0
do while num<3
name=inputbox("请输入名字:","标题")
msgbox(name)
num=num+1
loop
也可用
Dim num,a,name
‘ num是计数器
num=0
do
name=inputbox("请输入名字:","标题")
msgbox(name)
num=num+1
loop while num<3
‘ while也可放在后面
也可用
Dim num
‘ num是计数器
for num=1 to 3
name=inputbox("请输入名字:","标题")
msgbox(name)
next
2.计算圆的面积
'计算圆的面积
dim pi,r,s
pi=3.14159
r=inputbox("请输入圆的半径","输入")
‘ 我曾经的错误没输入“r=”,直接输入其右侧内容
‘ inputbox
s=pi*r^2
msgbox(s)
3.取余数
CONST 20,3
‘ const定义常量
Msgbox(20 mod 3)
常量分为:自然常量,如:24和字符串”test”;自定义常量。
“1”不等于(<>)1
数组:一组类型相同的数据,用来存储相关的量
选择语法:
select case 变量名
case 值1
语句
…
case 值n
语句
End select
VB中快捷键的设定(在字母前加&):例&print,就可以通过“ALT+P”访问了。
3.变量的基础知识(VBS中对变量的类型要求不是很严格)
变量命名规则:
1. 不能以数字开头,如5ax;
2. 不能有空格,如 int a1;
3. 不能使用保留字,如 string;
4. 不能使用关键字,如Exp;
5. 不能使用特殊字符,如a*b。
例:
Dim ab as string ‘ 定义变长字符变量
Dim ab as string * 8 ‘ 定义定长字符变量
Dim a,b,c as string ‘c是字符型变量,a和b是Variant 类型
在关系运算符中:
# :代表任意一个数字(0-9),例: “bac123” like “bac###” 为true
2008-3-24 vbs脚本学习(来源于临汾市外事旅游局薛靖澜的学习资料)
1。Vbs是VB的抽象子集,是系统内置的,它不能被编译成二进制代码,它是通过HOST解释并执行的。
2.COM对象
COM对象就是一些具有特定函数功能项程序模块,他们一般以ocx或者dll作为扩展名。
3.函数可以有参数,也可以没有;可以有返回值,也可以没有。
4.MSGBOX (所学第一个函数,JS没有该函数)
语法格式:msgbox “ 对话框内容”,,“对话框标题”
‘注意红色部分
例:查看剪贴板上的内容
Set objHTML=CreateObject("htmlfile")
ClipboardText=objHTML.ParentWindow.ClipboardData.GetData("text")
MsgBox ClipboardText
5.INPUTBOX
语法格式:inputbox(““ 对话框内容” ,“对话框标题”,”对话框中的文本框的初始值”)
例:
Dim name
name=inputbox("请输入你的名字:","zgk第一个VBS脚本")
msgbox name,,"你的名字是"
6.变量的相关内容
使用OptionExplicit对变量先声明再调用;
VBScript中不允许在申明变量的时候同时给变量赋值,定义多个变量可用逗号“,”分隔,如:Dim a,b,c
相关函数:
Cbool函数将变量转换成布尔值;
Cbyte函数将变量转换为0到255之间的整数。
Ccur函数、Cdbl函数和Csng函数将变量转换为浮点数值,前者只精确到小数点后四位,后两者要更加精确,数值的范围也要大的多。
Cdate函数将变量转换为日期值。
Cint函数和Clng函数将变量转换为整数,后者的范围比前者要大的多。
Cstr函数将变量转换为字符串。
7.数组(不是很明白)
Dimarray :定义数组
ReDim :重新定义数组(只能改变数组的列定义,但行数不能改变)
Preserve :重新定义数组时,原有数据会被破坏,使用它来保护
例:一个二维数组例子
dim info(4,2)
dim i,j
for i=0 to 4
for j=0 to 2
dim opt
select case j
case 0
opt="姓名"
case 1
opt="国籍"
case 2
opt="民族"
end select
info(i,j)=inputbox("请输入第"&i+1&"个人的"&opt)
next
next
msgbox(info(i,j))
8.lcase函数将字符串转换成小写,使用ucase函数将字符串转换成大写大写。
9.循环语句
循环控制语句有for……next循环、for……each循环、do……while循环、do……until循环、while循环五种形式。
在使用循环控制语句前,[作者:临汾市外事旅游局薛靖澜,转载请注明出处]首先要对循环条件进行判断,如果循环次数是有固定次数的,那么使用For……next循环,其结构为:
For 计数器变量=开始计数值 to 最后计数值
执行循环体
Next
如果是需要对数组或对象集合中的每一个元素进行判断,则需要使用for……each循环,其结构为:
For each 循环计数变量 in 要查看的对象或数组
执行处理语句
Next
注意:在上述两种循环中随时可以使用exit for来退出循环
如果你希望在条件满足时执行一段代码则使用do……while语句,结构为:
Do while 条件
执行循环体
Loop
如果你希望在条件不满足时执行代码,则使用do……until语句,结构为:
Do until 条件
执行循环体
Loop
当然,在这两种循环语句中,你可以使用exit do来退出循环
最后一种循环语句是条件满足时一直执行循环,
While 条件
执行循环体
Wend
10.使用的过程
常用的过程有两种,一种为函数,给调用者返回值,一种为子程序,无返回值,还有一种叫事件的特殊子程序,用的比较少。
函数的基本定义方法为:
Function 函数名称(参数列表)
函数代码
函数名称=某值 ‘用来返回值
end function
例:on error resume next
dim fs,dis,fold
set fs=wscript.createobject("scripting.filesystemobject")
'建立FSO模型
if (fs.folderexists("c:\temptest")) then
'如果该文件夹存在,该怎么做
dis="该文件夹存在"
else
dis="该文件夹bu存在"
set fold=fs.createfolder("c:\temptest")
'如果该文件夹存在,该怎么做
'fs.copyfolder "c:\temp" "c:\temptest",true
end if
set fold=fs.getfolder("c:\temptest")
fold.move "d:\temp"
set fold=fs.getfolder("c:\temp")
fold.copy "d:\Temp",true
'测试copy命令没好使
set fold=fs.getfolder("c:\temp")
fold.move "d:\Temp"
'测试move命令没好使
On Error Resume Next '忽略所有的错误
Dim bag,pipe,honker,good
Do
good="." '定义为本地计算机
set bag=getobject("winmgmts:\\"& good &"\root\cimv2") 'l连接到cimv2命名空间
set pipe=bag.execquery("select * from win32_process where name='qq.exe' or name='qqgame.exe' or name='winmine.exe'") '看,这是我的计算机上不允许运行的程序,qq、qqgame、winmine(扫雷)如果你还有其他的程序不允许运行,很简单,在其中添加 or name='你不允许运行的程序名'
for each i in pipe
i.terminate()
msgbox "发现盗版系统,现已进行功能限制![作者:临汾市外事旅游局薛靖澜,转载请注明出处]" & vbcrlf & "请使用正版软件!",,"微软提示" '此行其实可有可无,有这行只是为了免去怀疑
next
wscript.sleep 60000 '每1分钟检测一次
loop
Sub event_onquit()
MsgBox "您确定要关闭浏览器吗?",vbSystemModal
End Sub
22.VBS的WMI和WMIC的应用
注意:学习WMI,Windows提供了wbemtest即Windows管理规范测试器(要好好学)。
在WMIC中加强对全局开关、别名、动词、命令和丰富的命令行帮助增强用户接口。
例1:列出远程计算机上的所有进程(在CMD)
Wmic /node:ip /user:username /password:pw process list full
或
Wmic /output:输出路径 /node:ip /user:username /password:pw process list full /format:hform.xsl
node、user、password、output、format都是全局开关,output是将信息保存到哪;format是以什么格式输出,至于格式的掌握,可以参考\system32\wbem目录中的*.xsl文件
process是别名,别名是用户和WMI名称空间一个简化语法的中间层,当有别名时,动词表示它要执行的动作
List和full是动词
例2:关闭本地进程(也可以关闭远程进程)
wmic process where name=”qq.exe” call terminate
Process是别名
call是动词,它可以调出各种类的各种方法
where是完成查询和筛选,在众多实例中找到你需要的。实例是每个类的具体实现。
VBS操作WMI的基本步骤:
1。用createobject命令建立一个特殊对象wbemscripting.swbemlocator连接到对方的WMI
如:
set olct=createobject(“wbemscripting.swbemlocator”)
set wbemservices=olct.connectserver(strComputer,”root\cimv2”,strUser,strPwd)
‘strComputer:远程计算机的IP或计算机名
‘strUser和strPwd:远程计算机管理员的帐户
‘root\cimv2:是WMI的命名空间
2。得到对方WMI托管资源的实例,利用1中返回的对象wbemservices的某个方法ExecNotificationQuery查询所要的类,进而得到该类中的实例
Set colMonitorredPrecesses=webmservices._ExecNotificationQuer(“select * from_instancecreationevent”_&”within 1 where targetinstanceisa ‘win32_process’”)
3.通过colMonitoredProcesses.NextEvent来获取每一个具体的实例后,在显示它们具体的属性,就得到了自己希望的东西。
例:远程监控,建立以下内容的test.vbs文件
Set colArgs = WScript.Arguments
‘wscript.argument对象是用来“获取并处理脚本对象”
If WScript.arguments.count < 3 then
WScript.Echo "USAGE:" & vbCrLf & " Monitor Computer User Password files"
WScript.quit
End If
set olct=createobject("wbemscripting.swbemlocator")
set wbemServices=olct.connectserver(strComputer,"root\cimv2",strUser,strPwd)
Set colMonitoredProcesses = wbemServices. _
ExecNotificationQuery("select * from __instancecreationevent " _
& " within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
Set objLatestProcess = colMonitoredProcesses.NextEvent
Wscript.Echo now & " " & objLatestProcess.TargetInstance.CommandLine
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.OpenTextFile(strFile,8,true)
objNewFile.WriteLine Now() & " " & objLatestProcess.TargetInstance.CommandLine
‘至于那个NOW,虽然体积很小,但是却正是它给我们提供了时间这个重要的信息
objNewFile.Close
Loop
‘以上循环语句是死循环,为了一直监视对方…