首页 VBS脚本参考

VBS脚本参考

举报
开通vip

VBS脚本参考VBS脚本参考之一——使用连字符2007年06月14日 星期四 下午 08:35前言 这一章的前半部分介绍了 VB 脚本最基本的概念,并且告诉你它可以完成的工作,尤其是 VBS和其它的如 WMI、ADSI 接合在一起的时候。后半部分主要介绍了VBS对系统管理员更有用的部分。 许多脚本和程序语言在向文本输入的时候并不严格的遵守文本的行。例如,尽管下面这个JS 脚 本写了很多行,但是,JS 把它当做一行来处理。这是因为,在大部分的时候,JS 只有看到中止符的时候才认为使一个行的中止。在这个例子中,中止符就是“;”。...

VBS脚本参考
VBS脚本参考之一——使用连字符2007年06月14日 星期四 下午 08:35前言 这一章的前半部分介绍了 VB 脚本最基本的概念,并且告诉你它可以完成的工作,尤其是 VBS和其它的如 WMI、ADSI 接合在一起的时候。后半部分主要介绍了VBS对系统管理员更有用的部分。 许多脚本和程序语言在向文本输入的时候并不严格的遵守文本的行。例如,尽管下面这个JS 脚 本写了很多行,但是,JS 把它当做一行来处理。这是因为,在大部分的时候,JS 只有看到中止符的时候才认为使一个行的中止。在这个例子中,中止符就是“;”。在实际中敲入的行是和脚本本身不相关的。 var 作者:临汾市外事旅游局薛靖澜,转载请注明出处] objWMI =new Enumerator (GetObject("winmgmts:") . InstancesOf("Win32_process")) ; 正好相反,同样的一段代码,用 VB 写的时候就会报一个语法错误。 Set objWMI = (GetObject("winmgmts:") . InstancesOf("Win32_process")) 这是因为,VBS用回车键来代替特定的中止符。为了中止一个VB脚本,你不需要来敲入一个分号或者其它的特殊的符号,你只需要敲回车键就好了。一般来讲,不用中止符的限制,使VBS 在编写的过程中变的简单,但是也有一点会有些复杂。为了增强程序的可读性,建议每行的最大长度不超过80个字符。那么当你的一行代码中有 100 个字符,怎么办呢?尽管看来好象有个很简单的解决办法,但是你不能用回车键来将一行代码分隔成很多行。例如如下的代码片断会返回一个 VB 运行错误因为它用回车键来分隔脚本 strMessageToDisplay = strUserFirstName, strUserMiddleInitial, strUserLastName, strCurrentStatus Wscript.Echo strMessageToDisplay 你不能用回车建来换行,因为在 VB 中它认为回车是代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 一段代码的中止,在上面的代码中,它认为第一行是脚本的第一部分陈述内容。然后认为第二行是另外一部分陈述内容。这样因为 strCurrentStatus 不是一个VBS的命令,所以就报错了。为了解决这个问题,VB 脚本用下划线来表示下面一行是上面一行的代替。在 VB 的早期修订版本中,在第一行末尾加一个空格和一个下划线来表示第二行是第一行的继续。为更明确的表明这个意思,第二行前面要加四个空格。(这样作是为了可读,你其实不必在继续的行前作特定的标识──就是不用在第二行前加四个空格。) 作者:临汾市外事旅游局薛靖澜,转载请注明出处] strMessageToDisplay = strUserFirstName, strUserMiddleInitial, strUserLastName, _ strCurrentStatus Wscript.Echo strMessageToDisplay 当继续的行又引号的时候,它就显的特别复杂。例如,架设你用下划线和空格来分隔一个 WMI脚本: Set colServiceList = GetObject("winmgmts:").ExecQuery("SELECT * FROM _ Win32_Service WHERE State = 'Stopped' AND StartMode = 'Auto' ") 如果你运行这个脚本,它会弹出一个错误,因为继续换行符放在了引号中间了,这样它就认为换行符是字符串的一部分。为了分隔这个陈述: 1:在第一行用引号中止,然后插入空格和下划线 2:用 and(&)符号来开始下一行,这表示第二行是第一行字符串的继续 3:在下一行开始之前加入引号 这些引号表示这些陈述是包涵在上面的一行中的,没有了引号,它就VB就解释 Win32_Service 是 VB 的陈述语句,因为这个语句不是合法的,所以就产生了错误。修正的版本如下: Set colServiceList = GetObject("winmgmts:").ExecQuery("SELECT * FROM " _ & "Win32_Service WHERE State = 'Stopped' AND StartMode = 'Auto' ") 用这个办法来换行的时候,在适当的位置插入空格要十分小心。在上面的例子当中,空格是添加在“from”之后和下一行的引号之前,如果空格向作偏出,那么字符串会被错位的解释(你看 如果将 FROM 和 Win32_Service 连在一起)会像如下的错误: " SELECT * FROMWin32_Service WHERE State = 'Stopped' AND StartMode = 'Auto' ◎VBS脚本参考之二——定义和使用变量2007年06月26日 星期二 下午 02:57一:Working with Variables 变量是存储在计算器内存中能够存储数据的名称空间。大多数脚本语言允许你隐式的声明变量,使你不用明确的声明就可以使用变量。例如,你运行下面的脚本时候,不会遇到任何类型的错误,尽管它的第一行将一个值赋给了变量 sngDegreesCelsius。尽管它并没有被声明。 sngDegreesCelsius = 11 sngDegreesFahrenheit = ConvertToFahrenheit(sngDegreesCelsius) Wscript.Echo sngDegreesFahrenheit Function ConvertToFahrenheit(ByVal sngDegreesCelsius) ConvertToFahrenheit = (sngDegreesCelsius * (9/5)) + 32 End Function 作者:临汾市外事旅游局薛靖澜,转载请注明出处] 隐式的变量声明可以让写脚本变的快而且简单,但是在同时,它可能导致难以发现和解决的问题。 为了说明这一点,以前面的脚本为例,前面的脚本将摄氏的 11 度转换成华氏的 51.8 度。下面一个脚本本来应该作同样的事情,但是它却返回了一个 32 的值…… sngDegreesCelsius = 11 sngDegreesFahrenheit = ConvertToFahrenheit(sngDegreesCelsius) Wscript.Echo sngDegreesFahrenheit Function ConvertToFahrenheit(ByVal sngDegreesCelsius) ConvertToFahrenheit = (sngDegresCelsius * (9/5)) + 32 End Function 上面一个脚本返回一个错误的值。因为在第六行敲入 sngDegreesCelsius,而在后面却敲入了 sngDegresCelsius,因为这个变量并没有赋值,所以 VB 认为它的值是 0,这样继续算下去,结 果为 0,0 再加上 32 所以返回了错误的答案。 像这样的错误很难被发现,因为语法是正确的,所以并没有错误的信息报出来。你期待得到一个 不是 11 的值,并且你得到了。当你写更加复杂的脚本的时候,这个敲入的错误很难被发现和改正。 Declaring Variables in VBScript 为了避免这样的问题发生,你可以显式的声明你的变量。当显示变量声明被要求的时候,脚本中 所有的变量都必须被显示的声明,否则会再运行的时候报错。 例如,如下的脚本用“Option Explicit ”要求所有的变量被显示的声明,并且所有的变量用一 个 dim 语句。 Option Explicit Dim sngDegreesCelsius Dim sngDegreesFahrenehit sngDegreesCelsius = 11 sngDegreesFahrenheit = ConvertToFahrenheit(sngDegreesCelsius) Wscript.Echo sngDegreesFahrenheit Function ConvertToFahrenheit(ByVal sngDegreesCelsius) ConvertToFahrenheit = (sngDegresCelsius * (9/5)) + 32 End Function 当你运行这样一个脚本的时候,脚本的主机遇到一个没有声明的变量,这样,脚本中止执行并且 显示出类似下面的一个错误: C:\Scripts\TempConvert.vbs(10, 5) Microsoft VBScript runtime error: Variable is undefined: 'sngDegresCelsius' 在 VB 中声明变量: 1.用 Option Explicit 语句来强制一个变量的声明。 2.用一个单独的 DIM 语句来声明每一个你要用的变量。虽然你只能用一个单独的 dim 来声明 一个变量,但是在变量的后面,你可以添加一些解释来说明变量的用途,如下所示: Option Explicit 作者:临汾市外事旅游局薛靖澜,转载请注明出处] Dim intFirstNumber ' First number in our simple equation Dim intSecondNumber ' Second number in our simple equation Dim intTotal ' Sum of intFirstNumber and intSecondNumber Initializing Variables 初始化一个变量就是简单的给一个变量赋予一个初始值。例如,如下的几行代码初始化了两个变 量,将 x 赋予 100,将 Y 赋予 abcde X = 100 Y = "abcde" 如果你建立一个变量,但是没有给它初始化,(就是没有赋值给它),那么它的值有一下两种可能: 如果它是一个字符串,那么它的值为空 如果它的值是一个数字,那么它的值是 0. 例如:如下脚本创建了两个变量,X,Y,但是没有赋值给他们: Dim X Dim Y Wscript.Echo X & Y Wscript.Echo X + Y 在脚本的第三行,这两个变量被认为是字符串,(因为&是用来连接两个字符串的)。当它运行 的时候,它显示入 2.8 所示的信息框。因为两个变量都是空,蔓儿他们的接合也是空。所以结 果就是什么都没有。 在脚本的第四行,这两个变量被认为是数字。数字没有被初始化的时候,他们自动的被赋值为 0。 这样,这个行的脚本代表 0+0 的和。 Using the Equals Sign in VBScript 在 VB 脚本中,等号的含义和算数中是不同的。在算数中,x=2+2 是被认为是,x 等于 2 加 2 但是在 VB 中,同样的表达式,被读作:x 被赋值为 2+2 在上面这个例子中,他们并没有什么不同,任何一种办法来说,x 的值都是 4。但是看下面一个 脚本,它用一个 1 到 10 的循环: For i = 1 to 10 X = X + 1 Next 这个脚本的第二行在算数里面是不可能的,x 怎么可以等于 x+1 哪?原因就是它并不是一个算 数表达式,而是一个合法的 VB 表达式,这里的 X 是一个变量被赋予新的值,在这里这个表示 式被读作: X 被赋值为 x 当前的值加上 1 就是说,如果 x 当前的值为 3,当运行这个表达式之后,它的值就为 4 了,就是 3 加上 1 事实上,在 VB 中,等号也可以用在对字符串的赋值当中。例如,如下脚本建立一个 message 变量,赋予了它很多字符串的值: 作者:临汾市外事旅游局薛靖澜,转载请注明出处] Message = "This " Message = Message & "is a " Message = Message & "test message." Wscript.Echo Message ◎VBS脚本参考之三——定义和使用常量2007年06月30日 星期六 下午 05:09 使用常量 常量的意思是在脚本运行的时候,它的值不能改变。例如,如果你有一个脚本将日元转换成美元,假设当前的汇率是 1:0.0088759,你可以在脚本中写上如下的代码: curConvertedPrice = curPriceInYen * 0.00888759 尽管这个 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 可行,但是它会出现一些问题,原因很多不赘述了,为了防止这样的问题发生,用常量的办法来替代用数直接敲入。如果你改变了这个常量,那么你只是需要在定义常量的一个地方更改它就好了。 作者:临汾市外事旅游局薛靖澜,转载请注明出处] 定义常量 在 VB 脚本中,常量的定义是用一个 const 的表达式后加上常量的名字然后和常量的赋值。当你定义常量的是时候,你必须赋值给它一个数值。你不能给一个常量赋值一个变量,或者是一个程序。例如如下代码,尝试用一个变量 NumberOfDepartments,定义一个常量,会产 生一个 Expected literal constant 的错误 NumberOfDepartments = 20 Const NUMBER_OF_DEPARTMENTS = NumberOfDepartments 而你可以将 20 赋给这个常量。 Const NUMBER_OF_DEPARTMENTS = 20 使用固有常量 在 VB的脚本中有一些固有的常量,用来生成 message box,改变输入格式,或者实现其它一些其它的功能。为了提高程序的可读性,你可能需要用这些常量,而不是它们对应等价的数字。 例如,下面的脚本例子用数字来实现 message box 的显示,然后决定在 message box 中, 哪个按钮被按下了。尽管它可以正常的工作,但是对于不熟悉 VB 脚本的人来说,这个脚本很难懂并且很不好编辑。他们必须知道260的意思是:创见一个带有 yes& no 的 message box, 并且第二个按钮是默认的按钮,数字 7 代表用户敲打 NO 那个按钮。 ConfirmDelete = MsgBox ("Are you sure you want to delete these files?",260, "Delete all files") If ConfirmDelete = 7 then Wscript.Quit End If 作者:临汾市外事旅游局薛靖澜,转载请注明出处] 下面这个修正的脚本用了 VBS的固有常量。(VBYesNo,VBDefaultButton2,和 VBNo)用来代替数字。这些使脚本看起来简单易懂。 ConfirmDelete = MsgBox ("Are you sure you want to delete these files?", _ VbYesNo OR VBDefaultButton2, "Delete all files") If ConfirmDelete = VbNo then Wscript.Quit End If 用固有常量同样可以帮助你防止当脚本 Update 的时候使脚本实现中断。脚本的常量基本上不可能发生变化。几乎不可能将 VbYesNo 变成 VbNoYes。但是这些常量对应的值会在脚本下次更新的时候更换。用系统常量的时候也方便和其它出现的语言的脚本合并,例如,在 VB 脚本中,1 用来代表 true。在 visual basic.net,true 也等于 1。用 true 这个固有常量,比用硬编码 1 更加容易实现二者之间的转换。 大部分的时候,你会发现你经常重复的使用到如下两个固有常量: 1、VbCrLf.这个等同于按下回车键。它经常用来更改输出显示的格式。例如,如下代码用来显示一行文字,一个空的行,然后再显示一行文字 Wscript.Echo "This is the first line of text." & VbCrLF & VbCrLF & _ "This is the second line of text." 2、VbTab这个常量等同于按下 TAB 键,例如,如下代码来建立三个空格: 作者:临汾市外事旅游局薛靖澜,转载请注明出处] Wscript.Echo " 1" & VbTab & " 2" & VbTab & " 3" Wscript.Echo "A" & VbTab & "B" & VbTab & "C" Wscript.Echo "D" & VbTab & "E" & VbTab & "F" 当上面这个脚本运行的时候,它将显示如下: 1 2 3 A B C D E F 这些固有常量只有在用 VB 写的时候才有用,它没有权力去用类似 WMI,ADSI或者脚本的自动控制的对象。在用 VB 脚本写的时候,你可以不用定义就使用 Vb 当中固有的常量,比如 VbCrlf,VbYesNo,但是,当你用 WMI,ADSI 当中常量的时候,你必须显式的声明这些常量。 例如,在 Script Runtime Drive 对象当中有个固有常量 fixed 用来表示 fixed disk drive,Script Runtime可以用这个 fixed 而不需要显式的声明,不用赋值给它…… 因为 VB 脚本没有权力访问这个常量,所以任何试图不去定义就访问这个常量的脚本都会失败或者遇到一个错误。例如,如下的脚本可以运行,但是不能标识任何一个你计算器上的 fixed 硬盘。 Set objFSO = CreateObject("Scripting.FileSystemObject") Set colDiskDrives = objFSO.Drives For Each objDiskDrive in colDiskDrives If objDiskDrive.DriveType = Fixed then Wscript.Echo objDiskDrive.DriveLetter End if Next 这个脚本会执行失败,因为 VB 脚本并不知道 Fixexd 这个系统常量的值是 2,取而代之的是将 这个阿常量认为是一个变量。除非你把这个常量赋值,否则它的值就是 empty.在这个例子中,VB 将寻找 DriveType property 的值等于 0 而不是去寻找等于 2,因为 VB 找不到任何这样属 性的 drives,脚本就没有返回任何的数据…… 为了使这个脚本工作,你必须创建一个你自己的常量,叫作 fixed,并且显式的赋值给它为 2, 如下面的事例: Const Fixed = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set colDiskDrives = objFSO.Drives For Each objDiskDrive in colDiskDrives If objDiskDrive.DriveType = Fixed then Wscript.Echo objDiskDrive.DriveLetter End if Next ◎VBS脚本参考之四——脚本的数据类型2007年07月01日 星期日 下午 04:13VBScript的数据类型 VBS是一个有着很少数据类型的脚本语言,其并不限制变量为一种单一的数据类型。VBS不允许你定义一个特定数据类型的变量。实际上,VB 脚本只有一种变量类型,叫作variant,它可以存储任何类型的数据。与其相反,其它程序语言比如 C++是一个对数据类型要求很严格的,因为你必须事先定义变量能存储的数据类型。如果你试图存储任何数据在一个变量上,它将会报错。如果你已经将一个变量赋予特定的数字数据,那么你再将字母变量赋值给它的时候,它将崩溃。作者:临汾市外事旅游局薛靖澜,转载请注明 Variants 可以使脚本编写变得简单。你可以在没有定义数据类型的时候宣告并使用。但是如果你不了解数据类型的强制过程,那么variants会导致一系列的问题。 脚本语言所说的脚本无类,其实是针对脚本编写的人员来说的,对于脚本内部来讲,脚本还是要依照数据类型来工作。例如下面这个简单的表达式c= a + b 脚本语言必须给 a,b 都赋 值(有一定数据类型的值),也就是说,它必须建立并确定这两个数值是为 integer 还是 string。当这些值被定下来之后,它才可以执行相关的操作。 脚本的数据类型赋值的初始化过程是一种数据类型强制转换的过程。数据类型的强制过程是基于特定的规则的,大部分的时候,VB 脚本可以很顺利的完成这个任务。作者:临汾市外事旅游局薛靖澜,转载请注明 但是,类型转换一样会导致问题的发生,例如下面这个例子: intFirstNumber = InputBox("Please enter the first number:") intSecondNumber = InputBox("Please enter the second number:") intTotal = intFirstNumber + intSecondNumberi Wscript.Echo intTotal 如果你运行这个脚本,并且先后键入 4,2,那么计算器会回显一个 42 来作为 4+2 的结果,而不是你期待的 6。 这是因为,加法运算对于number和string来说都是合法的。VB 脚本给了 4,2 两个值,但是它不知道数据类型,于是,在没有其它的关于数据类型的相关信息的情况下,VB 脚本就用类型强制的办法将这两个变量转换成了string数据。 与其相反,如果你在下面一小段代码中键入 4,2 它将会返回正确 2,这是因为除法运算只是针对numbers 来作的,所以 VB 就用数据强制正确的将这两个变量转换成了 number 数据。 intFirstNumber = InputBox("Please enter the first number:") intSecondNumber = InputBox("Please enter the second number:") intTotal = intFirstNumber / intSecondNumber Wscript.Echo intTotal 为了避免类似的数据强制的时候发生问题,你需要显式的声明一个变量,这个过程叫做类型初始化。例如如下的 VB 代码用 VB 脚本的 CInt 来在他们想加之前将输入的变量转换为整数型。 intFirstNumber = CInt(InputBox("Please enter the first number:")) intSecondNumber = CInt(InputBox("Please enter the second number:"))作者:临汾市外事旅游局薛靖澜,转载请注明 intTotal = intFirstNumber + intSecondNumber Wscript.Echo intTotal 此类常见的函数有:Cbool、Cbyte、Ccur、Cdate、CDbl、Cint、CLng、CSng、CStr等。 了解empty和Null之间的不同,对于你脚本的成功与否,起着关键的作用。Empty 变量是一个没有初始化的变量,录入,你用 dim 语句定义一个 curBonus 的变量,这个变量在没有赋给它特定的值的时候,它就是 empty 的。一个 empty 的变量在数据强制的时候,如果是 number 变量就赋值给它 0,如果是 string 的时候,就赋值给它”” (空)。 与其相反,Null 是一个没有合法的赋值的变量。典型的 null 是从数据库操作中产生的。假如你查询一个数据库,想返回一个当前的分红给一个特定的员工,并且将这个值赋给 curBonus,如 果没有分红被分配(赋值),那么变量 curBonus 就是 Null.注意,curBonus 可以是 0,但是你 不能确定它就是 0。你不能假定它的值是 0,因为,有可能的是它实际上有 5000 美元的分红, 但是这个值还没有被输入到数据库中。这就是为什么 VB脚本要将 empty null 这二者加以区别的原因。 二者的区别在数字运算的时候就更加的明显。例如,在下面的脚本片断中,curBonus 被设置成 empty,然后将它加上 curBaseSalary(50000),那么计算的结果是:50000 + 0 = 50000 curBonus = Empty curBaseSalary = 50000 curTotalCompensation = curBaseSalary + curBonus Wscript.Echo TotalCompensation 在下面的版本中,继续同样的操作,只是将 curBonus 的值设定成 Null,当你再次运行这个脚本的时候,你会发现你不是得到结果 50000,而是 Null.任何时候,Null 这个变量在参与数字运算的时候,它的结果是 null这是因为你并不知道 NULL 的真正的值,你不能将它的值赋予为 0,因为你不知道它的值是否真 的是 0。因为你不知道它的值,也就不知道它计算的结果,这样结果只能是 null.(你可以这样 认为:null 的含义是:我不知道。) curBonus = Null curBaseSalary = 50000 curTotalCompensation = curBaseSalary + curBonus Wscript.Echo TotalCompensation Null 值在和数据库和 ADSI 一起工作的时候就会出现错误。幸运的是,你可以使用 IsNull 的办法来确定这个变量是否为 Null.例如,下面的脚本来检察 curBonus 是否为 null,如果值是 null 的话,那么赋值给它为 0。这样可以使他们在计算中生效。当然你也可以选择来回显一个信息框:No bonus information available for this employee." curBonus = Null作者:临汾市外事旅游局薛靖澜,转载请注明 curBaseSalary = 50000 If IsNull(curBonus) Then CurBonus = 0 End If curTotalCompensation = curBaseSalary + curBonus Wscript.Echo curTotalCompensation ◎VBS脚本参考之五——时间和日期2007年07月07日 星期六 下午 12:39VB 脚本用以下三个功能来标识当前的日期,时间或者全部。 Now – 获得当前的日期和时间 Date – 获得当前的日期 Time –返回当前的时间 如:DateInfo = DateInfo & Now & VbCrLf DateInfo = DateInfo & Date & VbCrLf DateInfo = DateInfo & Time & VbCrLf Wscript.Echo DateInfo Verifying That a Value Is a Date 在用 dates 工作的时候,确定这个数据是时间还是其他是非常重要的。这个对于 WMI 查询和对数据库进行相关操作的时候十分重要。在这些情况下,如果你使用了非法的日期类型,脚本将会报错。而 IsDate 的功能就是告诉你这个数据是不是一个日期的值。当这个值不是一个日期的时候,他返回一个 false(0),如果是一个日期,就返回一个 true(1),日期的值可以用以下方法标识:用#号来标识时间。这是一种被推荐的办法。因为这样的办法消除了防止 VB 脚本将其它非日期的数据解释成日期的可能。如: #9/3/2002# ,说明:中文系统格式为#年/月/日#。 当然为了确保日期的格式合法,你也可以打开计算机“区域和语言”选项,然后选择自定义,来进行设置。 下面这个脚本创建一个数组,然后列举里面的数值。这个脚本用 IsDate 来决定是不是为合法的日期,并且回显出来这个合法的日期和一段消息,来表示这个是合法的日期。 DateArray = Array("6/1/2002", "June 1, 2002", "6", "6/1") For Each dtmDate in DateArray If IsDate(dtmDate) = 0 Then Wscript.Echo dtmDate & " is not a valid date." Else Wscript.Echo dtmDate & " is a valid date." End If Next 说明:为什么 6/1 也是一个合法的日期?因为在 vb 脚本中使用 IsDate 函数的时候,如果脚本遇到一个似是而非的日期时如6/1 的 month/day 的时候, 他自动的添加当前的年份,而变成了 month/day/year,在上面的这个脚本中,运行的年份是2002 年,所以这个日期就变成了 6/1/2002,这个是一个合法的日期。 Retrieving Specific Portions of a Date and Time Value 大部分的时候,你所感兴趣的只是时间或者日期的一部分。例如,你可能有一个备份的脚本,只有在周日或者不是周末的时候来备份你的数据。这样,你可能每天都获得你的事件日志,在每月的 15,30 号清除日志。 VB 脚本用两种特别的办法来的获得当前的日期和时间的一部分。DatePart 函数可以获得当前日期时间的任何部分。此外VB 脚本还提供了其它诸如:Day ,Month,Year 这样的函数来获得日期或者时间的一部分。DatePart 可以获得当前日期时间的特殊部分,它要求两个参数: Yyyy-年份,返回当前的时间值的年份 q-季度,返回当前季度。 m-月份,返回当前的月份信息 1 – January 2 – February 3 – March 4 – April 5 – May 6 – June 7 – July 8 – August 9 – September 10 – October 11 – November 12 - December y-一年中的多少天,返回当前日期的数值。从 1 月 1 号起算到 12 月 31 号为止。如2 月 1 号是这个年的第 32 天。 d-日。返回是这个月的多少天。例如 4 月 17 日,则返回 17 w-周几,返回当前周的周几的信息。 1 – Sunday 2 – Monday 3 – Tuesday 4 - Wednesday 5 – Thursday 6 – Friday 7 Saturday ww-一年中的第多少周,返回当前周的信息,1 月 1 号认为是第一周,12 月 31 号是第 52 周。尽管如此,你仍然可以确定哪周是一年中的第一周。 H-小时。返回一天 24 小时的格式中是第多少个小时。例如,下午 2:00 会返回 14,下午 6:00 会返回 18。在午夜到凌晨一点的时候,返回的值是 0,午夜 12 点返回的也是 0。 n-分钟,返回当前时间的分钟。 s-秒数:返回是当前分钟的秒数。 为了使用DatePart 这个函数,你可以创建一个变量并且赋值给它。例如如下的代码将你计算机上当前的时间的年份赋值给变量 CurrentYear CurrentYear = DatePart("yyyy", Date) 在上面的例子中,用到了如下两个参数: "yyyy 表示从特定的日期返回年份,这个参数必须放在引号以内。 Date 用来解析的当前的日期,你也可以把特定的日期用引号括起来(例如”6/1/2002”)或者用一个变量来赋值个一个 DATE,例如如下两行代码返回值为 1997 DateToCheck = #8/15/1977# CurrentYear = DatePart("yyyy" , DateToCheck) 注意:当将一个日期赋值给一个变量的时候,你可以用#将日期放在中间。这样保证 vb 脚本认为它是日期,而不是数字或者字符串等变量。当然你也可以用 CDate 函数来实现这个功能。下面脚本解析出当前的日期,然后显示出当前日期的分支(组成部分)。 Wscript.Echo Now Wscript.Echo "Year: " & DatePart("yyyy" , Now) Wscript.Echo "Quarter: " & DatePart("q", Now) 当你给DatePart 函数一个错误时间时,它不会报错,但是不会返回你期待的结果。例如,如下代码想返回1899: Wscript.Echo DatePart("yyyy", "8:00 AM") 这行代码返回的是 0 Wscript.Echo DatePart("h", "12/1/2002") 除了 DatePart 函数以外,还其它函数同样可以更改时间的值。如: Day、Hour、Minute、Month、Second、Weekday、Year等 例如: CurrentDate = Now Wscript.Echo "Year: " & VbTab & VbTab & Year(CurrentDate)
本文档为【VBS脚本参考】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_395191
暂无简介~
格式:doc
大小:88KB
软件:Word
页数:16
分类:互联网
上传时间:2010-02-24
浏览量:53