vbs(Visual Basic Script) 笔记

vbs(Visual Basic Script) 笔记

  VBS是基于微软公司可视化Visual Basic的脚本语言,不编译成二进制文件, 直接由宿主(host)解释源代码并执行。

  • vbsVisual Basic Script 笔记
    • 常量和变量
    • 程序控制流程
      • 选择判断结构
        • if
        • Select Case
      • 循环结构
        • DoLoop
        • WhileWend
        • ForNext
        • For EachNext
    • 函数__必须要有返回值
    • 过程__子程序没有返回值
    • 注释
    • 常用函数
      • inputbox
      • msgbox
    • Windows 脚本宿主
      • 内建对象
        • WScript
          • 属性
          • 方法
        • WshShell 对象
          • 属性
          • 方法
        • 其他宿主内建对象
          • WshArguments 对象__参数
          • WshNamed 对象__提供从命令行中对有名称参数的访问
          • WshUnnamed 对象__提供了从命令行中对未命名对象的访问
          • WshNetwork 对象__提供对计算机所连接的网络上共享资源的访问
          • WshEnvironment 对象__提供对 Windows 环境变量集合的访问
          • WshSpecialFolders 对象__提供对 Windows 特殊文件夹集合的访问
          • WshShortcut 对象__允许您使用脚本创建快捷方式
          • WshUrlShortcut 对象__允许您使用脚本创建到 Internet 资源的快捷方式

常量和变量

常量:const 常量名=常量值
变量:dim 变量名(声明变量并分配存储空间)
Public语句变量可用于全部脚本中的所有过程。
Private 语句变量只能在声明该变量的脚本中使用。

程序控制流程

选择判断结构

if

vbs(Visual Basic Script) 笔记_第1张图片


Select Case

vbs(Visual Basic Script) 笔记_第2张图片

循环结构

一、

Do…Loop

当(或直到)条件为 True 时循环。(exit do 退出循环)

vbs(Visual Basic Script) 笔记_第3张图片


While…Wend

当条件为 True 时循环。

vbs(Visual Basic Script) 笔记_第4张图片


For…Next

指定循环次数,使用计数器重复运行语句。

vbs(Visual Basic Script) 笔记_第5张图片


For Each…Next

对于集合中的每项或数组中的每个元素,重复执行一组语句。

vbs(Visual Basic Script) 笔记_第6张图片


函数__必须要有返回值

vbs(Visual Basic Script) 笔记_第7张图片

function co(t1,t2) '我们使用function定义了一个新的函数,选出大的值
if t1>t2 then
co=t1 '通过"函数名=表达式"这种方法返回结果
elseif t2>t1 then
co=t2(返回值)
end if
end function

过程__子程序,没有返回值

vbs(Visual Basic Script) 笔记_第8张图片

通过Call调用

sub who(cname)
msgbox "你好" & cname REM(&:用于字符串拼接)
end sub
call who(yname)

注释

REM或’开头

常用函数

inputbox

Inputbox函数(输入)弹出一个输入对话框

InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
参数      描述
prompt  必需的。现实在对话框中的消息。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 以分隔各行。
title   可选的。显示在对话框标题栏中的字符串表达式。如果省略 title,则应用程序的名称将显示在标题栏中。
default 可选的。显示在文本框中的字符串表达式,在没有其它输入时作为默认的响应值。如果省略 default,则文本框为空。
xpos    可选的。数值表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离(单位为缇)。如果省略 xpos,则对话框会在水平方向居中。
ypos    可选的。数值表达式,用于指定对话框的上边缘与屏幕上边缘的垂直距离(单位为缇)。如果省略 ypos,则对话框显示在屏幕垂直方向距下边缘大约三分之一处。
helpfile    可选的。字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。
context     可选的。数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。

msgbox

Msgbox则用于输出

vbs(Visual Basic Script) 笔记_第9张图片

buttons 参数可以有以下值:
常数      值       描述 
vbOKOnly 0 只显示确定按钮。 
vbOKCancel 1 显示确定和取消按钮。 
vbAbortRetryIgnore 2 显示放弃、重试和忽略按钮。 
vbYesNoCancel 3 显示是、否和取消按钮。 
vbYesNo 4 显示是和否按钮。 
vbRetryCancel 5 显示重试和取消按钮。 
vbCritical 16 显示临界信息图标。 
vbQuestion 32 显示警告查询图标。 
vbExclamation 48 显示警告消息图标。 
vbInformation 64 显示信息消息图标。 
vbDefaultButton1 0 第一个按钮为默认按钮。 
vbDefaultButton2 256 第二个按钮为默认按钮。 
vbDefaultButton3 512 第三个按钮为默认按钮。 
vbDefaultButton4 768 第四个按钮为默认按钮。 
vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。 
vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。 

MsgBox 函数有以下返回值:
常数 值 按钮 
vbOK 1 确定 
vbCancel 2 取消 
vbAbort 3 放弃 
vbRetry 4 重试 
vbIgnore 5 忽略 
vbYes 6 是 
vbNo 7

Windows 脚本宿主

   Windows 脚本宿主(Windows Script Host,WSH)的着眼点。WSH完全是一个兼容各种脚本语言的宿主接口,可以处理各种 ActiveX 脚本引擎,为Wind平台提供了一个强有力的,但是又非常易于使用的脚本编写平台,该平台既可以从 Windows GUI 中访问,也可以以命令行方式访问。

内建对象

WScript

   WSH 对象模型的基础就是 WScript 对象。这个对象提供了使开发人员能够访问各种信息的属性和方法,如:
● 将要执行的脚本的名称和路径信息
● Microsoft 脚本引擎的版本
● 与外部对象的链接
● 与用户的交互
● 延迟或中断脚本执行的能力

属性

WScript 对象具有下列属性:
● Arguments(包含了 WshArguments 对象(一个参数集合)。从该集合中获取单个参数时,使用由 0 开始的索引。)
● FullName(是一个只读的字符串,它代表宿主可执行文件(cscript.exe 或 wscript.exe)的有效完整路径。)
● Interactive(设置脚本的模式,或识别脚本的模式。使用该属性会返回一个布尔值。有两种可用的模式:批处理模式和交互模式。)
● Name(返回 WScript 对象(宿主可执行文件)的名称,它是一个只读的字符串。)
● Path(返回包含宿主可执行文件(cscript.exe 或 wscript.exe)的目录名。)
● ScriptFullName(返回当前正在运行的脚本的完整路径。)
● ScriptName(返回当前正在运行的脚本的文件名。)
● StdErr(开放当前脚本的只写的错误输出流。)
● StdIn(开放当前脚本的只读的输入流。)
● StdOut(开放当前脚本的只写的错误输出流。)
● Version(该属性返回 WSH 的版本。)

方法

WScript 对象具有下列方法:
● CreateObject(WScript 对象的这个方法用于创建一个 COM 对象。)
● ConnectObject(该方法将对象的事件源连接到具有给定前缀的函数。)
● DisconnectObject(该方法用于断开已连接对象的事件源的连接。)
● Echo(该方法输出一个消息框或一个命令控制台窗口。)
● GetObject(GetObject 方法根据指定的 ProgID 获取某个已存在对象,或从文件创建一个新的对象。)
● Quit(该方法强制脚本在任意时刻立即停止执行。)
● Sleep(该方法将脚本的执行挂起一段时间,然后接着执行。)

WshShell 对象

   Windows 脚本宿主提供了一种便捷的方式,可以用于获取系统环境变量的访问、创建
快捷方式、访问 Windows 的特殊文件夹,如 Windows Desktop,以及添加或删除注册表条目。还可以使用 Shell 对象的功能创建更多的定制对话框以进行用户交互。
创建一个 WScript.Shell 对象的实例:
Set WshShell= WScript.CreateObject( “WScript.Shell” )

属性

WshShell 对象有三个属性:
● CurrentDirectory(该属性获取或更改当前活动目录。)
● Environment(该属性返回 WshEnvironment 对象(一个环境变量集合)。)
● SpecialFolders(该属性返回一个 SpecialFolders 对象(一个特殊文件夹集合)。)

方法

● AppActivate(这个方法可以用于激活一个指定的已经打开的应用程序窗口。)
● CreateShortcut(该方法可以用于创建一个新的快捷方式,或打开一个已有的快捷方式。)
● ExpandEnvironmentStrings(该方法返回环境变量的扩充值。)
● LogEvent(LogEvent 方法向日志文件中添加一个事件条目。)
● Popup(该方法用于在弹出式消息框中显示文本。)

intButton = object.Popup(strText,[nSecondsToWait],[strTitle],[nType])
BtnCode = WshShell.Popup("Do you like this code?", 7, "Quick survey:", 4 + 32)
[nType]:
值  描 述
0  显示 OK 按钮
1  显示 OK 和 Cancel 按钮
2  显示 Abort、Retry 和 Ignore 按钮
3  显示 Yes、No和 Cancel 按钮
4  显示 Yes 和 No 按钮
5  显示 Retry 和 Cancel 按钮
图标类型
值  描 述
16  显示终止(Stop Mark)图标
32  显示问号(Question Mark)图标
48  显示叹号(Exclamation Mark)图标
64  显示提示信息(Information Mark)图标
intButton:(点击之后的返回值)
在 nSecondsToWait 秒之前没有单击任何按钮,inButton 就被设置为-1.
值  描 述
1  OK 按钮
2  Cancel 按钮
3  Abort 按钮
4  Retry 按钮
5  Ignore 按钮
6  Yes 按钮
7  No 按钮

Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
BtnCode = WshShell.Popup("Do you like this code?", 7, "Quick survey:", 4 + 32)
Select Case BtnCode
case 6 WScript.Echo "Glad to hear it - Thanks!"
case 7 WScript.Echo "I’m sorry you didn’t like it."
case -1 WScript.Echo "Helllloooooooo?"
End Select

● RegDelete(该方法从注册表中删除一个键或其键值。)
● RegRead(该方法返回注册表中一个键或键值的名称。)
● RegWrite(该方法可以创建一个新键,给现有键添加另一个键值名(并指定一个值),或修改现有键值名的值。)
● Run(Run 方法在一个新进程中运行一个程序。)

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

object:WshShell 对象。
strCommand:一个字符串,表示想要运行的命令行,必须包含所有要传递给可
执行文件的参数。
intWindowStyle:可选。一个整数值,表示程序窗口的外观。并不是所有的程序
都使用这一信息。
bWaitOnReturn:可选。一个 Boolean 值,表示脚本在其下一条语句之前是否需
要等待程序结束。如果设置为 True,脚本一直停止执行直到程序结束,Run 返回
任一个由程序返回的错误代码。如果设置为 False(默认),程序启动后,Run 方法立
即返回 0(这不是错误代码)。
IntWindowStyle  描 述
0  隐藏当前窗口并激活另一个窗口
1  激活并显示一个窗口如果该窗口处于最小化或最大化状态,系统将恢复其原始尺寸如果是初次显示该窗口,应用程序就应该指定这个标志
2  激活并以最小化状态显示窗口
3  激活并以最大化状态显示窗口
4  以其最近位置和尺寸显示一个窗口活跃的窗口将继续保持活跃
5  以其当前位置和尺寸显示一个窗口
6  最小化指定的窗口并将其激活为 Z 序列中仅次于顶层的窗口
7  以最小化形式显示窗口活跃的窗口将继续保持活跃
8  以其当前状态显示窗口活跃的窗口将继续保持活跃
9  激活并显示窗口如果该窗口处于最小化或最大化状态,系统将恢复其原始尺寸如果要恢复一个最小化窗口,应用程序就应该指定这个标志
10  根据启动应用程序的程序状态设置窗口显示的状态

打开一个命令提示符窗口并显示驱动器 C:的内容。
cmd /c dir 是执行完dir命令后关闭命令窗口。 
cmd /k dir 是执行完dir命令后不关闭命令窗口。
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /K CD C:\ & Dir"
Set oShell = Nothing

● SendKeys(Sendkeys 方法向活跃窗口发送一次或多次击键(仿佛来自键盘)。)
● Exec(Exec 方法在一个子命令解释器中运行一个应用程序,子命令解释器提供对 StdIn、StdOut 和 StdErr 流的访问。)

其他宿主内建对象

WshArguments 对象__参数

   编程过程中,参数的使用是一种非常有益的机制,可以给脚本提供输入以支持它的工作,它是通过使用 WScript.Arguments 属性来实现的。

WshNamed 对象__提供从命令行中对有名称参数的访问

该对象的访问是通过创建 WScript.Named 对象的实例实现的。
Set argsNamed = WScript.Arguments.Named

WshUnnamed 对象__提供了从命令行中对未命名对象的访问

该对象的访问是通过创建 WScript.Arguments.Unnamed 对象的实例实现的。
Set argsUnnamed = WScript.Arguments.Unnamed

WshNetwork 对象__提供对计算机所连接的网络上共享资源的访问

   如果想连接到网络共享或网络打印机,从网络共享或网络打印机断开连接,映射或删除网络共享,或访问网络上某一用户的信息,都需要创建一个 WshNetwork 对象。
该对象的访问是通过创建 WScript.Network 对象的实例实现的。
Set WshNetwork = WScript.CreateObject(“WScript.Network”)

WshEnvironment 对象__提供对 Windows 环境变量集合的访问

   该对象的访问是通过创建 WScript.Environment 对象的实例实现的。下面的脚本返回运行脚本的系统中安装的处理器个数:
Set WshShell = WScript.CreateObject(“WScript.Shell”)
Set WshSysEnv = WshShell.Environment(“SYSTEM”)
WScript.Echo WshSysEnv(“NUMBER_OF_PROCESSORS”)

WshSpecialFolders 对象__提供对 Windows 特殊文件夹集合的访问

   WshShell 对象的 SpecialFolder 属性返回 WshSpecialFolders 对象。该集合包含对 Windows 特殊文件夹(例如,Desktop 文件夹和 Start menu 文件夹)的引用。

WshShortcut 对象__允许您使用脚本创建快捷方式

"vbs">


WshUrlShortcut 对象__允许您使用脚本创建到 Internet 资源的快捷方式

   该对象是 WshShell 对象的子对象。必须使用 WshShell 方法的 CreateShortcut 来创建 WshUrlShortcut 对象。

下面的代码可以保存为一个后缀名为.wsf 的 Windows 脚本文件。
WshShell.CreateShortcut(strDesktop & "\URLShortcut.lnk")

"vbs">


你可能感兴趣的:(脚本语言)