全国企业信用公司系统:VBS脚本宝典教程

来源:百度文库 编辑:北方网 时间:2019/12/10 16:05:00
VBS脚本宝典教程
2009/12/1 21:52:18
我们先来看一个简单的 vbs脚本实例 Const aa="Hello World!" bb="MsgBox 例子" cc="MsgBox"(aa,vbOKOnly,bb)
语法介绍 VBScript 常数什么是常数?常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。 VBScript定义了许多固有常数。详细信息,请参阅 VBScript 语言参考。创建常数的方法:您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。例如: Const MyString = "这是一个字符串。 " Const MyAge = 49 请注意字符串文字包含在两个引号 (" ")之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如:
Const CutoffDate = #6-1-97# 最好采用一个命名方案以区分常数和变量。这样可以避免在运行 Script时对常数重新赋值。例如,可以使用 “vb”或“con”作常数名的前缀,或将常数名的所有字母大写。将常数和变量区分开可以在开发复杂的 Script 时避免混乱。
VBScript 变量什么是变量?变量相当于一个容器,我们可以给这个容器起名叫做 A,那么我们可以向 A杯子内放入任何的数。那么容器 A就可以看作是一个变量。声明变量:声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在 Script 中显式声明变量。例如:
Dim aa
声明多个变量时,使用逗号分隔变量。例如:
Dim Top, Bottom, Left, Right
数据类型描述
Null 不包含任何有效数据的变量。 Boolean 包含 True 或 False。 Integer 包含 -32,768 到 32,767 之间的整数。 Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。 Single 包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。 Double 包含双精度浮点数,负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324,正数范围从 4.94065645841247E-324 到 1.79769313486232E308。 String 包含变长字符串,最大长度可为 20 亿个字符。
弹出对话框的函数
MSGBOX("剑思庭VBS教程")
WScript.Echo("剑思庭VBS教程")
Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Popup "剑思庭VBS教程"
MsgBox 函数描述在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。语法
MsgBox(prompt[, buttons][, title][, helpfile, context]) MsgBox 函数的语法有以下参数:
参数描述 prompt 作为消息显示在对话框中的字符串表达式。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。 buttons 数值表达式,是表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。有关数值,请参阅“设置”部分。如果省略,则 buttons 的默认值为 0。 title 显示在对话框标题栏中的字符串表达式。如果省略 title,则将应用程序的名称显示在标题栏中。 helpfile 字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。在 16 位系统平台上不可用。 context 数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。在 16 位系统平台上不可用。
设置 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 第四个按钮为默认按钮。
第一组值 (0 -5) 用于描述对话框中显示的按钮类型与数目;第二组值 (16, 32, 48, 64) 用于描述图标的样式;第三组值 (0, 256, 512) 用于确定默认按钮;而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 buttons 参数值时,只能从每组值中取用一个数字。
返回值 MsgBox 函数有以下返回值:常数值按钮 vbOK 1 确定 vbCancel 2 取消 vbAbort 3 放弃 vbRetry 4 重试 vbIgnore 5 忽略 vbYes 6 是 vbNo 7 否
说明如果同时提供了 helpfile 和 context,则用户可以按 F1 键以查看与上下文相对应的帮助主题。如果对话框显示取消按钮,则按 ESC 键与单击取消的效果相同。如果对话框包含帮助按钮,则有为对话框提供的上下文相关帮助。但是在单击其它按钮之前,不会返回任何值。
下面的示例利用 MsgBox 函数显示一信息框并且返回值说明了按下的是那一个按钮:
Dim MyVar MyVar = MsgBox ("Hello World!", 65, "MsgBox 例子") ' MyVar 包含 either 1 or 2, '依赖于
被按下的按钮。
一个 VBS的加法运算的例子 : dim a,b,c'声明变量 a,b,c a="4"'变量付值。把变量 a付值为 4 b="6"'变量付值。把变量 b付值为 6 c="a"+b'把变量 a的内容和变量 b内的内容进行相加,存放到变量 c中 msgbox(c)'用 msgbox函数显示出变量 c中的内容。
dim a,b,c a="4" b="6" c="a"+b msgbox(c)
=============
VBS 中的运算符
运算符
付值=
加 +
减 ­
乘 *
除 /
===============
小于 <
大于 >
负号 -
等于 ==
小于等于 <=
大于等于 >=
不等于 <>
===============
求余 Mod
逻辑与 And
逻辑或 Or
逻辑非 Not
逻辑异或 Xor
字符串连接 &
Chr(34) 为"符号
=======================
实例:
Dim a,b,c,d,e a= InputBox("输入一个加数") b= InputBox("输入一个被加数")
c=CInt(a) d="CInt"(b) e="c"+d msgbox(e)
Cint函数作用:把一个其它类型的数转化为正数型。使用格式 CINT(表达式)
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。
附注如果同时提供 helpfile 与 context,对话框中会自动加上一个 Help 按钮。
如果使用者按了一下 [确定] 或是按了 ENTER,则 InputBox 函数会传回文字方块中的内容;如果使用者按了一下 [取消],则此函数会传回一个长度为零的字符串 ("")。
下面范例即使用 InputBox 函数显示输入方块并指定字符串给 Input 变量:
Dim Input Input = InputBox("Enter your name") MsgBox ("You entered: " & Input)
===================================
VBS例子讲解--1: 用 run运行文件 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing"
VBS例子讲解--2: 用 FSO复制文件 Set shl = CreateObject("Scripting.FileSystemObject") shl.CopyFile "c:\1.txt","d:\" set shl = nothing
=========================================================
CreateObject
描述创建并返回对象的引用。语法
CreateObject(class)
class 参数使用语法 servername.typename,有以下部分:
部分描述 servername 提供对象的应用程序名称。 typename 要创建的对象类型或类。
说明 Automation 服务器至少提供一种对象类型。例如,字处理应用程序可以提供应用程序对象、文档对象和工具条对象。要创建 Automation 对象,将 CreateObject 函数返回的对象赋值给某对象变量:
Dim ExcelSheet Set ExcelSheet = CreateObject("Excel.Sheet") ' 使 Excel 在整个 Application 对象中都可见。 ExcelSheet.Application.Visible = True
' 将一些文本放入工作表的第一个单元格中。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1" ' 保存工作表。 ExcelSheet.SaveAs "C:\TEST.XLS" ' 关闭 Excel,使 Quit 方法处于 Application 对象中。 ExcelSheet.Application.Quit ' 释放对象变量。 Set ExcelSheet = Nothing
================================== Set
将对象引用赋给一个变量或属性,或者将对象引用与事件关联。
createobject("WScript.Shell").run"regedit.exe"
和下面的 3句句有同样效果。
set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing"
但如果我要使用多个 CreateObject对象的时候,就要写很多个 CreateObject("WScript.Shell")出来。内容如下:
createobject("WScript.Shell").run"regedit.exe" CreateObject("WScript.Shell").popup"注册表已经被运行" 上面例子会给我们造成很多麻烦和工作量。这个时候我们可以使用 set来吧 CreateObject("WScript.Shell")对象付给一个变量。
以后只要对变量访问就相当于对 CreateObject("WScript.Shell")访问了。 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" shl.popup"注册表已经被运行" set shl="nothing"
Nothing
可选项。断开 shl与任何指定对象或类的关联。当没有其它变量引用前面的引用对象时,将 shl赋值为 Nothing 以释放与前面的引用对象相关联的系统或内存资源。
WScript 对象介绍属性/方法/对象。属性=一个物体本身具有的一种特性。方法=一个物体能够做某件事情,完成某件事情的时候就要用到方法。
WScript属性的演示例子:运行 WScript属性的格式为: WScript.属性名。
关于属性--实例: WScript.Echo (WScript.FullName) 'FullName 属性是代表主机可执行文件的完全限定路径的只读字符串。 WScript.Echo (WScript.Name) '返回 WScript 对象(主机可执行文件)的名称 WScript.Echo (WScript.Path) '返回包含主机可执行文件(CScript.exe 或 WScript.exe)的路径名称。
WScript.Echo WScript.ScriptName
'返回当前运行脚本的文件名。
wscript.echo WScript.ScriptFullName
'返回当前运行脚本的完整路径。
WScript.Echo WScript.Version '返回 Windows 脚本宿主的版本
WScript方法的演示例子:运行 WScript方法的格式为: WScript.方法名(操作的内容)
关于方法--实例: WScript.Echo ("hello")
'将文本输出到消息框中或命令控制台窗口。
wscript.echo "hello1" WScript.Quit (1) wscript.echo "hello2" 'WScript.Quit强制脚本随时停止执行。 '(1)参数可选。作为过程的退出代码而返回的整数值。此例子中返回的是 1。 =================================================================== wscript.echo "hello1" WScript.Sleep 1000 wscript.echo "hello2" WScript.Sleep 1000 wscript.echo "hello3"
'在指定的时间长度内将脚本执行挂起,然后继续执行。 '参数,表示脚本过程处于不活动状态的时间间隔(毫秒)的整数值。
实例 2:
set WshShell = WScript.CreateObject("WScript.Shell")
'创建快捷方式
strDesktop = WshShell.SpecialFolders("Desktop") set oShellLink = WshShell.CreateShortcut(strDesktop & "\VBS的快捷方式.lnk") oShellLink.TargetPath = WScript.ScriptFullName oShellLink.WindowStyle = 1 oShellLink.Hotkey = "Ctrl+Alt+e" oShellLink.IconLocation = "notepad.exe, 0" oShellLink.Description ="VBS程序的快捷方式" oShellLink.WorkingDirectory = strDesktop oShellLink.Save '创建 URL set oUrlLink = WshShell.CreateShortcut(strDesktop & "\剑思庭博客.url") oUrlLink.TargetPath = "http://blog.cechina.cn/jiansiting"
oUrlLink.Save
相关参数说明: WshShell 对象的属性: .SpecialFolders '返回 SpecialFolders 对象(特殊文件夹集)。
下面的特殊文件夹可用: Desktop --->桌面 Favorites --->收藏夹 Fonts --->C:\WINDOWS\Fonts目录 MyDocuments -->我的文档 Programs -->c:\program files\ SendTo -->发送到 StartMenu -->开始菜单等等
.CurrentDirectory属性
'检索或更改当前活动目录。 'CurrentDirectory 返回一个字符串,其中包含活动过程的当前工作目录的完全限定路径。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo WshShell.CurrentDirectory
===============
WshShell 对象的方法: .CreateShortcut
'创建新的快捷方式,或打开现有的快捷方式。
'object.CreateShortcut(strPathname) '参数 'object 'WshShell 对象。 'strPathname
'表示要创建的快捷方式的路径名的字符串值。说明 'CreateShortcut 方法返回 WshShortcut 对象或 WshURLShortcut 对象。只调用 CreateShortcut
'方法并不会导致快捷方式的创建。快捷方式对象以及对其所做的更改存储在内存中, '直到您用 Save方法将其保存到磁盘中为止。要创建快捷方式,必须执行以下操作: '创建 WshShortcut 对象的实例。 '初始化它的属性。 '用 Save 方法将其保存到磁盘中。
'注意一个常见的问题是,将参数放在快捷方式对象的 TargetPath 属性中将不起作用。快捷方式的所有参数都必须放在 'Arguments 属性中。
WshShortcut 对象中的属性介绍:
.TargetPath
'快捷方式的可执行文件的路径。
'object.TargetPath '参数 'object 'WshShortcut 或 WshUrlShortcut 对象。 '说明 '字符串。 '该属性仅用于快捷方式的目标路径。快捷方式的任何参数都必须放在参数的属性中。
.WindowStyle
为快捷方式指派窗口样式,或确定快捷方式使用的的窗口样式类型。
object.WindowStyle = intWindowStyle
参数
object WshShortcut 对象。 intWindowStyle
设置正在运行的程序的窗口样式。说明 WindowStyle 属性返回一个整数。
下表列出了 intWindowStyle 的可用设置。
intWindowStyle 说明 1 激活并显示窗口。如果该窗口被最小化或最大化,则系统将其还原到初始大小和位置。 3 激活窗口并将其显示为最大化窗口。 7 最小化窗口并激活下一个顶级窗口。
.Hotkey
为快捷方式指派组合键,或确定指派给快捷方式的组合键。
object.Hotkey = strHotkey
参数
object WshShortcut 对象。 strHotkey
代表指派给快捷方式的组合键的字符串。语法 strHotkey 的语法为:
[KeyModifier]KeyName KeyModifier可以是以下的任何一个组合键:ALT+、CTRL+、SHIFT+、EXT+。注意 EXT+ 表示“扩展键”。—此处是为了防止日后将新的 SHIFT-键类型添加到字符集内。
KeyName a ... z、 0 ... 9、F1 F12 ... KeyName 不区分大小写。
说明热键是一组组合键,当同时按下所有相关键时将启动快捷方式。
热键可用于启动系统桌面和 Windows“开始”菜单中的快捷方式。注意热键的另一个名称叫做“键盘快捷方式”。在 Windows 2000 中,有效的热键总是以 CTRL + ALT 开头。
.IconLocation
为快捷方式指派图标,或确定指派给快捷方式的图标。
object.IconLocation = strIconLocation
参数
object WshShortcut 对象。 strIconLocation
用于查找该图标的字符串。该字符串应包含与该图标相关联的完全限定路径和索引。有关详细信息,请参见示例。说明
字符串。
.Description
返回快捷方式的说明。
object.Description
参数
object WshShortcut 对象。说明 Description 属性中包含一个说明快捷方式的字符串值。
.WorkingDirectory
为快捷方式指派工作目录,或者确定快捷方式使用的工作目录。
object.WorkingDirectory = strWorkingDirectory
参数
object WshShortcut 对象。 strWorkingDirectory
字符串。快捷方式的启动目录。说明
字符串。
.FullName
返回快捷方式对象目标的完全限定路径。
object.FullName
参数
object WshShortcut 对象。说明
FullName 属性中包含一个表示快捷方式目标的完全限定路径的只读字符串值。
WshShortcut 对象中的方法介绍:
.Save
将快捷方式对象保存到磁盘中。
object.Save
参数
object WshShortcut 或 WshUrlShortcut 对象。说明
使用 CreateShortcut 方法创建快捷方式对象并设置快捷方式对象的属性后,必须用 Save 方法将快捷方式对象保存到磁盘中。Save 方法使用快捷方式对象的 FullName 属性中的信息,确定快捷方式对象在磁盘上的保存位置。只可创建系统对象的快捷方式,包括文件、目录和驱动器(不包括打印机链接或调度任务)。
WshUrlShortcut 对象 WshShell对象介绍
set WshShell = CreateObject("WScript.Shell") WScript.Echo (WshShell.CurrentDirectory)
CurrentDirectory 属性
请参阅
WshShell 对象
语言
VBScript
显示所有语言检索或更改当前活动目录。
object.CurrentDirectory
参数
object WshShell 对象。说明
CurrentDirectory 返回一个字符串,其中包含活动过程的当前工作目录的完全限定路径。
==========================
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 100
WshShell.AppActivate "notepad"
WScript.Sleep 100
WshShell.SendKeys "1"
WScript.Sleep 500
WshShell.SendKeys "{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "="
WScript.Sleep 2500
AppActivate 方法请参阅运行脚本 | WshShell 对象 | SendKeys 方法激活应用程序窗口。
object.AppActivate title
参数
object WshShell 对象。 title
指定要激活哪个应用程序。它可以是包含应用程序的标题(和出现在标题栏中的一样)或过程 ID 的字符串。说明 AppActivate 方法返回的布尔值表示过程调用是否成功。该方法将焦点转移到命名应用程序或窗口中,但是并不影响应用程序或窗口是最大化还是最小化。用户执行更改焦点的操作(或关闭窗口)时,焦点移离活动的应用程序窗口。
在确定要激活哪个应用程序时,指定的标题将与正在运行的每个应用程序的标题字符串相比较。如果不存在完全匹配的标题,则将激活标题字符串以 title 开头的所有应用程序。如果还是找不到任何应用程序,则将激活标题字符串以 title 结尾的所有应用程序。如果存在多个名为 title 的应用程序实例,则将随机激活一个实例。
将一个或多个键击发送到活动窗口(仿佛是在键盘上击键一样)。
object.SendKeys(string)
参数
object WshShell 对象。 string
表示要发送的键击(一个或多个)的字符串值。说明使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。
注意要发送空格,则请发送字符串 " "。可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc"。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:
用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。 SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。
要发送左中括号字符,请发送字符串参数 "{[]";要发送右中括号字符,请发送字符串参数 "{]}"。要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:
键参数退格键 {BACKSPACE}、{BS} 或 {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL 或 DELETE {DELETE} 或 {DEL}向下键 {DOWN} END {END} ENTER {ENTER} 或 ~ ESC {ESC} HELP {HELP} HOME {HOME} INS 或 INSERT {INSERT} 或 {INS}向左键 {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC}向右键 {RIGHT} SCROLL LOCK {SCROLLLOCK} TAB {TAB}向上键 {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15}
F16 {F16}
要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:
键特殊字符
SHIFT + CTRL ^ ALT %
注意这样使用时,不用大括号括起这些特殊字符。要指定在按下多个其它键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:
如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击数字} 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。
注意只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。注意不能向应用程序发送 PRINT SCREEN 键 {PRTSC}。
==================================================== **********
写入注册表
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegWrite "HKCU\Software\aaa\bbb\", 1, "REG_BINARY" WshShell.RegWrite "HKCU\Software\aaa\bbb\ccc", "hello", "REG_SZ" set wshshell="nothing"
RegWrite 方法请参阅 WshShell 对象 | RegDelete 方法 | RegRead 方法语言
VBScript
显示所有语言创建新项、将另一个值名添加到现有的项中(为其指派一个值),或更改现有值名的值。
object.RegWrite(strName, anyValue [,strType])
参数
object WshShell 对象。 strName
表示要创建、添加或更改的项名、值名或值的字符串值。
anyValue
要创建的新项名称、要添加到现有项中的值名或要指派给现有值名的新值。
strType
可选。表示值的数据类型的字符串值。说明
可通过用最后的反斜线终止 strName 来指定项名。指定值名时最后不要包括反斜线。 RegWrite 方法自动将 anyValue 参数转换成字符串或整数。strType 的值确定它的数据类型(字符串或整数)。下表列出用于 strType 的选项。
转换成 strType字符串 REG_SZ字符串 REG_EXPAND_SZ整数 REG_DWORD字符串 REG_BINARY
注意 RegWrite 方法不支持 REG_MULTI_SZ 类型。提示 RegWrite 最多会将一个 DWORD 写入一个 REG_BINARY 值。该方法不支持 Larger 值。完全限定的项名和值名的前缀为根项。可以将缩写版本的根项名称用于 RegWrite 方法。下表中列出了五个根项。根项名缩写
HKEY_CURRENT_USER HKCU HKEY_LOCAL_MACHINE HKLM HKEY_CLASSES_ROOT HKCR HKEY_USERS HKEY_USERS HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
下表列出了用 strType 指定的四个可能的数据类型。
类型说明形式 REG_SZ 字符串字符串 REG_DWORD 数字整数 REG_BINARY 二进制值整数 REG_EXPAND_SZ 可扩展的字符串(例如,"%windir%\\calc.exe")字符串 ====================================================
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell = WshShell.RegRead("HKCU\Software\aaa\bbb\ccc") WScript.Echo (WshShell)
RegRead 方法请参阅 WshShell 对象 | RegDelete 方法 | RegWrite 方法语言
VBScript
显示所有语言从注册表中返回项值或值名。
object.RegRead(strName)
参数
object WshShell 对象。 strName
表示所需的项名或值名的字符串值。说明 RegRead 方法返回以下五种类型的值。
类型说明形式 REG_SZ 字符串字符串 REG_DWORD 数字整数 REG_BINARY 二进制值由整数组成的 VB 数组 REG_EXPAND_SZ 可扩展的字符串(例如,"%windir%\\calc.exe")字符串 REG_MULTI_SZ 字符串数组由字符串组成的 VB 数组
可通过用最后的反斜线终止 strName 来指定项名。指定值名时最后不要包括反斜线。值由三部分组成:名称、数据类型和值。指定项名(与值名相反)时,RegRead 返回默认值。要读取项的默认值,请指定项本身的名称。完全限定的项名和值名以根项开头。可以将缩写版本的根项名称用于 RegRead 方法。下表列出了五个可能的根项。
根项名缩写
HKEY_CURRENT_USER HKCU HKEY_LOCAL_MACHINE HKLM HKEY_CLASSES_ROOT HKCR HKEY_USERS HKEY_USERS HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
==================================================== Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegDelete "HKCU\Software\aaa\bbb\" set wshshell="nothing"
RegDelete 方法请参阅 WshShell 对象 | RegRead 方法 | RegWrite 方法语言
VBScript
显示所有语言从注册表中删除项及其某个值。
object.RegDelete(strName)
参数
object WshShell 对象。 strName
表示要删除的注册表项名或值名的字符串。说明
通过用最后的反斜线终止 strName 来指定项名;停止它后指定值名。完全限定的项名和值名的前缀为根项。可以将缩写版本的根项名称用于 RegDelete 方法。下表中列出您可能用到的五个根项。
根项名缩写
HKEY_CURRENT_USER HKCU HKEY_LOCAL_MACHINE HKLM HKEY_CLASSES_ROOT HKCR HKEY_USERS HKEY_USERS HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG ====================================================
Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell") WshShell.Exec("calc")
在子命令外壳程序中运行应用程序,提供对 StdIn/StdOut/StdErr 流的访问。
object.Exec(strCommand)
参数
object WshShell 对象。 strCommand
表示用于运行脚本的命令行的字符串值。该命令行看上去和从命令提示符处键入完全一样。说明 Exec 方法返回 WshScriptExec 对象,它提供有关用 Exec 运行的脚本状态和错误信息,还提供对 StdIn、StdOut 和 StdErr 频道的访问。Exec 方法只允许执行命令行应用程序。Exec 方法不能用于运行远程脚本。不要混淆 Exec 方法和 Execute 方法(后者属于 WshRemote 对象)。
今天介绍 FSO对象。例子 1:功能:创建一个文本,并向文本写入内容
Dim fso, MyFile set WshShell = CreateObject("WScript.Shell") currentpath="WshShell".CurrentDirectory Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile(currentpath&"\testfile.txt", True) MyFile.WriteLine("This is a test.1") MyFile.WriteLine("This is a test.2") MyFile.WriteLine("This is a test.3") MyFile.WriteLine("This is a test.4") MyFile.Close Set fso="Nothing" Set wshshell="Nothing"
FSO对象介绍: FSO=FileSystemObject
提供对计算机文件系统的访问。 FSO 对象模型包含在 Scripting 类型库中,该库位于 Scrrun.dll 文件中。因而,要使用 FSO 对象模型,必须存在 Scrrun.dll文件。包含用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。和该对象相关联的许多方法,与其它 FSO 对象中的方法完全相似;它们是为了方便才被提供的。
方法 BuildPath 方法 | CopyFile 方法 | CopyFolder 方法 | CreateFolder 方法 | CreateTextFile 方法 | DeleteFile 方法 | DeleteFolder 方法 | DriveExists 方法 | FileExists 方法 | FolderExists 方法 | GetAbsolutePathName 方法 | GetBaseName 方法 | GetDrive 方法 | GetDriveName 方法 | GetExtensionName 方法 | GetFile 方法 | GetFileName 方法 | GetFolder 方法 | GetParentFolderName 方法 | GetSpecialFolder 方法 | GetTempName 方法 | MoveFile 方法 | MoveFolder 方法 | OpenTextFile 方法
属性 Drives 属性
请参阅
Dictionary 对象 | Drive 对象 | Drives 集合 | File 对象 | Files 集合 | Folder 对象 | Folders 集合 | TextStream 对象
CreateTextFile 方法请参阅 CreateFolder 方法 | OpenAsTextStream 方法 | OpenTextFile 方法应用于:FileSystemObject 对象 | Folder 对象语言
VBScript
显示所有语言创建指定的文件名并返回一个 TextStream 对象,可以使用这个对象对文件进行读写。
object.CreateTextFile(filename[, overwrite[, unicode]])
参数
object必选项。应为 FileSystemObject 或 Folder 对象的名称。 filename
必选项。指明所要创建文件的字符串表达式。
overwrite可选项。Boolean 值,指明能否覆盖已有文件。如果文件可以覆盖,则值为 true ,否则为 false。如果忽略,则已有文件不能被覆盖。 unicode可选项。Boolean 值,指明文件是否以 Unicode 或 ASCII 文件方式创建。如果文件作为 Unicode 文件创建,则值为 true ,如果作为 ASCII 文件创建,则为 false。如果忽略,则假定为 ASCII 文件。
WriteLine 方法请参阅 Write 方法 | WriteBlankLines 方法应用于:TextStream 对象语言
VBScript
显示所有语言向 TextStream 文件中写入给定的字符串和一个换行符。
object.WriteLine([string])
参数
object必选项。总是一个 TextStream 对象的名称。 string
可选项。要写入该文件的文本。如果忽略该参数,则向该文件写入一个换行符。
Close 方法语言
VBScript
显示所有语言关闭打开的 TextStream 文件。
object.Close( ); object 通常为 TextStream 对象的名字。
=============================== 例子 2:创建一个文件夹
set WshShell = CreateObject("WScript.Shell") currentpath="WshShell".CurrentDirectory set fso = CreateObject("Scripting.FileSystemObject") set a = fso.CreateFolder(currentpath&"\new folder") CreateFolderDemo = a.Path msgbox(createfolderdemo) Set fso="Nothing" Set wshshell="Nothing"
CreateFolder 方法请参阅 CopyFolder 方法 | DeleteFolder 方法 | MoveFolder 方法应用于:FileSystemObject 对象语言
VBScript
显示所有语言创建文件夹。
object.CreateFolder(foldername)
参数
object必选项。应为 FileSystemObject 的名称。 foldername
必选项。字符串表达式,标识所要创建的文件夹。
Path 属性
返回指定文件、文件夹或驱动器的路径。
object.Path object 总是为 File、Folder 或 Drive 对象。
=============================== 例子 3: set WshShell = CreateObject("WScript.Shell") currentpath="WshShell".CurrentDirectory
Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFile(currentpath"\testfile.txt")
DeleteFile 方法请参阅 CopyFile 方法 | CreateTextFile 方法 | Delete 方法 | DeleteFolder 方法 | MoveFile 方法应用于:FileSystemObject 对象语言
VBScript
显示所有语言删除指定文件。
object.DeleteFile ( filespec[, force] );
参数
object必选项。应为 FileSystemObject 的名称。 filespec必选项。要删除的文件的名称。 filespec 可以在最后的路径成分中包含通配字符。 force
可选项。Boolean 值,如果要删除设置了只读属性的文件,则为 true ;如果不删除则为 false (默认)。
=====================================================
例子 4: set WshShell = CreateObject("WScript.Shell") currentpath="WshShell".CurrentDirectory
Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder(currentpath&"\new folder")
DeleteFolder 方法请参阅 CopyFolder 方法 | CreateFolder 方法 | Delete 方法 | DeleteFile 方法 | MoveFolder 方法应用于:FileSystemObject 对象语言
VBScript
显示所有语言删除指定的文件夹及其内容。
object.DeleteFolder ( folderspec[, force] );
参数
object必选项。应为 FileSystemObject 的名称。 folderspec必选项。要删除的文件夹的名称。 folderspec 可以在最后的路径成分中包含通配字符。 force可选项。Boolean 值,如果要删除设置了只读属性的文件夹,则为 true ;否则为 false (默认)。
===============================
Dim fso, d, dc, s, n Set fso = CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives For Each d in dc
n= "" s = s & d.DriveLetter & " - " If d.DriveType = 3 Then
n = d.ShareName ElseIf d.IsReady Then
n = d.VolumeName End If s = s & n& "/"
Next ShowDriveList = s MsgBox(ShowDriveList)
今天介绍 FSO对象。例子 1: j=10 Set fso = CreateObject("Scripting.FileSystemObject") for i="1" toj Set MyFile = fso.CreateTextFile("C:\"&i&".txt", True) for k="1" toj MyFile.WriteLine("This is a test."&k) next MyFile.Close next Set fso="Nothing"
============================================================
例子 2:
j=10
Set fso = CreateObject("Scripting.FileSystemObject")
for i="1" toj
fso.DeleteFile("C:\"&i&".txt")
next
Set fso="Nothing"
============================================================
例子 3:
j=10
Set fso = CreateObject("Scripting.FileSystemObject")
for i="1" toj
fso.CreateFolder("C:\新建目录"&i)
next
Set fso="Nothing"
============================================================
例子 4:
j=10 Set fso = CreateObject("Scripting.FileSystemObject") for i="1" toj fso.DeleteFolder("C:\新建目录"&i) next Set fso="Nothing"
For...Next 语句请参阅 Do...Loop 语句 | Exit 语句 | For Each...Next 语句 | While...Wend 语句
要求
版本 1 以指定次数重复执行一组语句。
For counter = start To end [Step step] [statements] [Exit For] [statements] Next
参数
counter
用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
start counter 的初值。 end counter 的终值。 step counter 的步长。如果没有指定,则 step 的默认值为 1。 statements For 和 Next 之间的一条或多条语句,将被执行指定次数。说明 step 参数可以是正数或负数。step 参数值决定循环的执行情况,如下所示:
值如果 ... 则循环执行正数或 0 counter <= end负数 counter >= end
当循环启动并且所有循环中的语句都执行后,step 值被加到 counter 中。这时,或者循环中的语句再次执行(基于循环开始执行时同样的测试),或者退出循环并从 Next 语句之后的语句继续执行。
注意在循环体内改变 counter 的值,将会使程序代码的阅读和调试变得更加困难。
Exit For 只能用于 For Each...Next 或 For...Next 结构中,提供另一种退出循环的方法。可在语句中的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用(例如 If...Then),并立即将控制权转移到 Next 之后的语句。
可以将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环。每个循环中的 counter 要使用不同的变量名。下面的结构是正确的:
一个简单的例子:(关于 FOR的) j=0 for k="1" to 100 j="j"+k next msgbox j 结果输出 5050 ,既 1+2+3......+100=5050.
============================================================
例子 5:文件复制 Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\1.txt", "c:\2.txt"
CopyFile 方法
从一个位置向另一个位置复制一个或多个文件。
object.CopyFile ( source, destination[, overwrite] )
参数
object必选项。object 应为 FileSystemObject的名称。 source
必选项。指定文件字符串,可以包含通配字符来复制一个或多个文件。
destination必选项。目的字符串,文件将从 source 复制到这里。不允许通配字符。 overwrite可选项。Boolean 值,指明是否覆盖已有文件。如果为 true ,则文件将被覆盖;如果为 false ,则文件不会被覆盖。默认的是 true。注意,如果 destination 设置了只读属性,那么无论 overwrite 的值是什么, CopyFile 都会失败。
说明通配字符只能用在 source 参数中最后的路径成分中。
============================================================
例子 5:
Dim fso, d, dc, s, n Set fso = CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives For Each d in dc
n= "" s = s & d.DriveLetter & " - " If d.DriveType = 3 Then
n = d.ShareName
ElseIf d.IsReady Then n= "磁盘卷标:"&d.VolumeName n="n"& ";磁盘格式" &d.FileSystem
End If
s = s & n& Chr(10) Next ShowDriveList = s
MsgBox(ShowDriveList)
Drives 属性
请参阅
Drives 集合 | Files 属性 | SubFolders 属性
应用于:FileSystemObject 对象语言
VBScript
显示所有语言返回一个 Drives 集合,包含了本地机器上所有可用的 Drive 对象。
object.Drives object 应为 FileSystemObject 。
Drive 对象
请参阅
Drives 集合 | File 对象 | Files 集合 | Folder 对象 | Folders 集合 | GetDrive 方法
语言
VBScript
显示所有语言提供对特定磁盘驱动器或网络共享属性的访问。
DriveLetter 属性
请参阅
AvailableSpace 属性 | DriveType 属性 | FileSystem 属性 | FreeSpace 属性 | IsReady 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | ShareName 属性 | TotalSize 属性 | VolumeName 属性
应用于:Drive 对象语言
VBScript
显示所有语言返回一个物理上的本地驱动器或者网络共享的驱动器号。只读属性。
object.DriveLetter 其中 object 总是一个 Drive 对象。
说明如果所指定的驱动器没有与一个驱动器号关联起来,例如,一个没有映像到驱动器号的网络共享,那么 DriveLetter 属性将返回一个长度为 0 的字符串 ("")。
ShareName 属性
请参阅
AvailableSpace 属性 | DriveLetter 属性 | DriveType 属性 | FileSystem 属性 | FreeSpace 属性 | IsReady 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | TotalSize 属性 | VolumeName 属性
应用于:Drive 对象语言
VBScript
显示所有语言返回指定驱动器的网络共享名。
object.ShareName object 总是为 Drive 对象。
说明如果 object 不是网络驱动器,那么 ShareName 属性将返回长度为零的字符串 ("") 。
DriveType 属性
请参阅
AvailableSpace 属性 | DriveLetter 属性 | FileSystem 属性 | FreeSpace 属性 | IsReady 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | ShareName 属性 | TotalSize 属性 | VolumeName 属性
应用于:Drive 对象语言
VBScript
显示所有语言返回一个值,表示所指定驱动器的类型。
object.DriveType
其中 object 总是一个 Drive 对象。
Case 0:t = "Unknown"
Case 1:t = "Removable"
Case 2:t = "Fixed"
Case 3:t = "Network"
Case 4:t = "CD-ROM"
Case 5:t = "RAM Disk"
VolumeName 属性
请参阅
AvailableSpace 属性 | DriveLetter 属性 | DriveType 属性 | FileSystem 属性 | FreeSpace 属性 | IsReady 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | ShareName 属性 | TotalSize 属性
应用于:Drive 对象语言
VBScript
显示所有语言设置或返回指定驱动器的卷名。读/写。
object.VolumeName [= newname]
参数
object必选项。总是为 Drive 对象的名称。 newname可选项。如果提供了这个部分,那么 newname 就将成为指定的 object 的新名称。
IsReady 属性
请参阅
AvailableSpace 属性 | DriveLetter 属性 | DriveType 属性 | FileSystem 属性 | FreeSpace 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | ShareName 属性 | TotalSize 属性 | VolumeName 属性
应用于:Drive 对象语言
VBScript
显示所有语言如果指定驱动器已就绪则返回 True ;否则 False。
object.IsReady object 应为 Drive 对象。
说明对于可移动媒体的驱动器和 CD-ROM 驱动器来说,IsReady 只有在插入了适当的媒体并已准备好访问时才返回 True 。
下面的代码说明了 IsReady 属性的用法:
FileSystem 属性
请参阅
AvailableSpace 属性 | DriveLetter 属性 | DriveType 属性 | FreeSpace 属性 | IsReady 属性 | Path 属性 | RootFolder 属性 | SerialNumber 属性 | ShareName 属性 | TotalSize 属性 | VolumeName 属性
应用于:Drive 对象语言
VBScript
显示所有语言返回指定驱动器所使用的文件系统的类型。
object.FileSystem 其中 object 总是一个 Drive 对象。
说明可能的返回类型包括 FAT、NTFS、和 CDFS。
For Each...Next 语句请参阅 Do...Loop 语句 | Exit 语句 | For...Next 语句 | While...Wend 语句
要求
版本 2 对数组或集合中的每个元素重复执行一组语句。
For Each element In group [statements] [Exit For] [statements] Next [element]
参数
element用来枚举集合或数组中所有元素的变量。对于集合,element 可能是 Variant 变量、通用 Object 变量或任意指定的 Automation 对象变量。对于数组,element 只能是 Variant 变量。 group
对象集合或数组的名称。
statements对于 group 中的每一项执行的一条或多条语句。
说明如果 group 中有至少一个元素,就会进入 For Each 块执行。一旦进入循环,便首先对 group 中第一个元素执行循环中的所有语句。只要 group 中还有其它的元素,就会对每个元素执行循环中的语句。当 group 中的没有其它元素时退出循环,然后从 Next 语句之后的语句继续执行。
Exit For 只能用于 For Each...Next 或 For...Next 控制结构中,提供另一种退出循环的方法。可在循环的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用(例如 If...Then),并立即将控制权转移到 Next 之后的语句。
可以将一个 For Each...Next 循环放置在另一个之中,组成嵌套式 For Each...Next 循环。但
是每个循环的 element 必须是唯一的。
注意如果省略 Next 语句中的 element,则程序仍会象已包含它一样继续执行。如果 Next 语句在其相应的 For 语句之前出现,则会产生错误。下面例子举例说明如何使用 For Each...Next 语句:
Function ShowFolderList(folderspec) Dim fso, f, f1, fc, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(folderspec) Set fc = f.Files For Each f1 in fc
s = s & f1.name s = s & "
" Next ShowFolderList = s End Function
==============================================================
例 1:测试一个输入数的大小。
i=INPUTBOX("输入一个数 ") If i>100Then MsgBox "i>100" ElseIf i="100" Then MsgBox "i=100" Else MsgBox "i<100" End If
条件分支语句 If...Then...Else 语句
要求
版本 1 根据表达式的值有条件地执行一组语句。
If condition Then statements [Else elsestatements ]
或者,使用块形式的语法:
If condition Then [statements] [ElseIf condition-n Then [elseifstatements]] . . . [Else  [elsestatements]] End If
参数
condition
一个或多个下面两种类型的表达式:数值或字符串表达式,其运算结果是 True 或 False。如果 condition 是 Null,则 condition 被视为 False。
形如 TypeOf objectname Is objecttype 的表达式。objectname 是任何对象的引用,而 objecttype 则是任何有效的对象类型。如果 objectname 是 objecttype 所指定的一种对象类型,则表达式为 True;否则为 False。
Statements如果 condition 为 True 时,执行的一条或多条(以冒号分开)语句。 condition-n同 condition。 elseifstatements如果相关的 condition-n 为 True时,执行的一条或多条语句。 elsestatements如果前面没有 condition 或 condition-n 表达式为 True 时,执行的一条或多条语句。说明对于短小简单的测试,可以使用单行形式(第一种语法)。但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。
注意在单行语法中,可以执行多条语句作为 If...Then 判断的结果,但所有语句必须在同一行上并且以冒号分开,如下列语句所示:
IfA> 10ThenA=A+ 1 : B = B +A: C = C+ B 当程序运行到 If 块(第二种语法)时,将测试 condition。如果 condition 是 True,则执行 Then 之后的语句。如 condition 是 False,则每个 ElseIf 部分的条件式(如果有的话)会依次计算并加以测试。当找到某个为 True 的条件时,则其相关的 Then 之后的语句会被执行。如没有一个 ElseIf 语句是 True(或没有 ElseIf 子句),则将执行 Else 之后的语句。执行 Then 或 Else 之后的语句以后,将继续执行 End If 之后的语句。
Else 和 ElseIf 子句都是可选项的。在 If 块中可以放置任意多个 ElseIf 子句,但是都必须在 Else 子句之前。If 块语句可以被嵌套,即被包含在另一个 If 块语句之中。
要判断某个语句是否是一个 If 块,可检查 Then 关键字之后是什么。如果在 Then 的同一行之后还有其它非注释的内容,则此语句就是单行形式的 If 语句。
If 块语句必须是某一行的第一条语句,并且必须以 End If 语句结束。
==============================================================
例 2:计算磁盘剩余容量 Dim fso, d, s
drvpath="c:" Set fso = CreateObject("Scripting.FileSystemObject") Set d = fso.GetDrive(fso.GetDriveName(drvPath)) s = "Drive " & UCase(drvPath) & " - " s = s & d.VolumeName & Chr(10) s = s & "Free Space: " & FormatNumber(d.FreeSpace/1024, 0) s = s & " Kbytes" Msgbox(s)
GetDriveName 方法
根据指定路径返回包含驱动器名称的字符串。
object.GetDriveName(path)
参数
object必选项。应为 FileSystemObject 的名称。 path
必选项。路径说明,将根据其中成分返回驱动器名称。说明如果无法确定驱动器,GetDriveName 方法将返回长度为零的字符串 ("")。
注意 GetDriveName 只作用于所提供的 path 字符串。不会试图解析路径,也不会检查指定的路径是否存在。
GetDrive 方法
返回相应于指定路径中驱动器的 Drive 对象。
object.GetDrive ( drivespec );
参数
object必选项。应为 FileSystemObject 的名称。 drivespec必选项。drivespec 参数可以是驱动器号 (c) 、带冒号的驱动器号 (c:) 、带冒号和路径分隔符的驱动器号 (c:\) ,或者任意网络共享的说明 (\\computer2\share1)。说明对于网络共享,需要进行检查以确保共享存在。
如果 drivespec 和可接受的形式不一致或是不存在,那么将产生错误。
要在普通的路径字符串上调用 GetDrive 方法,可以使用以下序列来获取适于作为 drivespec 的字符串。
FreeSpace 属性
向用户返回指定驱动器或网络共享上的可用空间的大小。只读。
object.FreeSpace object 应为 Drive 对象。
说明典型情况中,由 FreeSpace 属性返回的值和由 AvailableSpace 属性返回的值是相同的。对于支持 quotas 的计算机系统来说两者有可能不同。
UCase 函数
返回字符串的大写形式。
UCase(string) string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null。
说明只有小写字母被转换成大写字母;所有大写字母和非字母字符均保持不变。
下面的示例利用 UCase 函数返回字符串的大写形式:
Dim MyWord MyWord = UCase("Hello World") ' 返回"HELLO WORLD"。
FormatNumber 函数
返回表达式,此表达式已被格式化为数值。
函数格式:
FormatNumber(expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) Arguments Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅 “设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅 “设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅 “设置”部分。设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:
常数值描述
TristateTrue -1 True TristateFalse 0 False TristateUseDefault -2 使用计算机区域设置中的设置。
说明当省略一个或多个可选项参数时,由计算机区域设置提供被省略参数的值。
注意所有设置信息均取自区域设置的“数字”附签。下面例子利用 FormatNumber 函数把数值格式化为带四位小数点的数:
Dim MyAngle, MySecant, MyNumber MyAngle = 3 MySecant = 1 / MyAngle msgbox(MySecant) FormatNumberDemo = FormatNumber(MySecant,4) ' 把 MySecant 格式化为带四位小数
点的数。
msgbox(formatnumberdemo)
==============================================================
例 3:按行读取文本文件内容。
Const ForReading = 1 aa="" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile _
("bbs.txt", ForReading) Do Until objTextFile.AtEndOfStream objTextFile.Skip(2) strTextLine = objTextFile.Readline aa="aa"+strTextLine Wscript.Echo strTextLine Loop
Wscript.Echo aa
Do...Loop 语句
当条件为 True 时或条件变为 True 之前重复执行某语句块。
Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop
也可以使用下面的语法:
Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
参数
condition数值或字符串表达式,其值为 True 或 False。如果 condition 为 Null,则 condition 被当作 False。 statements当 condition 为 True 时被重复执行的一条或多条命令。说明
Exit Do 仅可以用在 Do...Loop 控制语句中,提供另一种退出 Do...Loop 的方法。可以在 Do...Loop 语句中的任何位置放置任意个 Exit Do。Exit Do 通常与条件判断语句(如 If...Then )一起使用,将控制传递给紧随在 Loop 语句后面的语句。
当用于嵌套 Do...Loop 中的时候,Exit Do 将控制传递给其所在循环的上一层嵌套循环。
AtEndOfStream 属性
如果文件指针正好位于 TextStream 文件中的结尾,则返回 true,否则返回 false。只读。
object.AtEndOfStream object 总是 TextStream 对象的名称。
说明 AtEndOfStream 属性只能应用于打开用来读取的 TextStream 文件;否则将产生错误。
ReadLine 方法
从 TextStream 文件中读取一整行(一直到换行符,但不包括换行符),并返回由此得到的字符串。
object.ReadLine( ) object 参数总是 TextStream 对象的名称。
OpenTextFile 方法
打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读、写或追加。
object.OpenTextFile(filename[, iomode[, create[, format]]])
参数
object必选项。object 应为 FileSystemObject 的名称。 filename
必选项。指明要打开文件的字符串表达式。
iomode可选项。可以是三个常数之一:ForReading 、 ForWriting 或 ForAppending 。 create可选项。Boolean 值,指明当指定的 filename 不存在时是否创建新文件。如果创建新文件则值为 True ,如果不创建则为 False 。如果忽略,则不创建新文件。 format可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
设置 iomode 参数可以是下列设置中的任一种:
常数值描述 ForReading 1 以只读方式打开文件。不能写这个文件。 ForWriting 2 以写方式打开文件 ForAppending 8 打开文件并从文件末尾开始写。
format 参数可以是下列设置中的任一种:
值描述 TristateTrue 以 Unicode 格式打开文件。 TristateFalse 以 ASCII 格式打开文件。 TristateUseDefault 使用系统默认值打开文件。
Skip 方法
在读取 TextStream 文件时跳过指定个数的字符。
object.Skip(characters)
参数
object必选项。总是某个 TextStream 对象的名称。 characters
必选项。在读取文件时要跳过的字符个数。说明被跳过的字符即被放弃。
==============================================================
例 4:读取整个文本文件内容。
Set fsofile = CreateObject("Scripting.FileSystemObject") set self="fsofile".opentextfile(wscript.scriptfullname,1) vbscopy="self".readall msgbox(vbscopy)
set tsobj="fsofile".opentextfile("c:\aa.txt",2,true)'对病毒本体作备份 tsobj.write vbscopy '将病毒代码覆盖目标文件 tsobj.close
vbscopy=left(vbscopy,1000)'取病毒体的前 1000个字节复制到新文件中。 msgbox(vbscopy) set tsobj1=fsofile.opentextfile("c:\bb.txt",2,true) tsobj1.write vbscopy tsobj1.close
ReadAll 方法
读取 TextStream 文件的全部内容并返回由此得到的字符串。
object.ReadAll( ); object 总是 TextStream 对象的名称。
说明对大文件而言,使用 ReadAll 方法将会耗费内存资源。可以使用其它技术来输入一个文件,如逐行读取文件。
Left 函数
返回指定数目的从字符串的左边算起的字符。
Left(string, length)
参数
string字符串表达式,其最左边的字符被返回。如果 string 参数中包含 Null,则返回 Null。 Length
数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串。说明可使用 Len 函数确定 string 参数中的字符数目。
下面的示例利用 Left 函数返回 MyString 的左边三个字母:
Dim MyString, LeftString MyString = "VBSCript" LeftString = Left(MyString, 3) 'LeftString 包含 "VBS"。注意 LeftB 函数与包含在字符串中字节数据一起使用。 length 不是指定返回的字符串数,而是字节数。
Write 方法
将给定的字符串写入到一个 TextStream 文件。
object.Write(string)
参数
object必选项。总是一个 TextStream 对象的名称。 string
必选项。要写入文件的文本。说明给定的字符串在写入该文件时不会在字符串之间插入空格或字符。可以使用 WriteLine 方法来写入一个换行符或以换行符结束的字符串