VBScript 教程

VBScript 教程

VB 不区分大小写

  1. 变量

    1. 普通变量

      • 关键词声明
        Dim、Public、Private
      • 赋值动态创建
        name = "hello"
      • Option Explicit 语句
        必须用关键词声明
    2. 数组变量

      • 显示声明
        • 一维数组 声明
          Dim names(3) ' 声明为4个元素的数组
        • 二维数组甚至多维数组 声明
          Dim table(参数表)
        • 数组访问
          names(Index '索引值)
    3. 字典数组

      • 创建字典数组 对象
        Set dictionary = CreateObject("Scripting.Dictionary")
      • 属性:
        CompareMode
        设定或返回键的字符串比较模式
        Count
        只读。返回 Dictionary 里的键/条目对的数量
        Item(key)
        设定或返回指定的键的条目值
        用法:
        Item(ItemValue)
        Key(key)
        设定键值
        用法:
        Key(KeyValue)
      • 方法
        Add(key,item)
        增加键/条目对到 Dictionary
        Exists(key)
        如果指定的键存在,返回 True,否则返回 False
        Items()
        返回一个包含 Dictionary 对象中所有条目的数组
        用法:
        dictionary.Items
        Keys()
        返回一个包含 Dictionary 对象中所有键的数组
        用法:
        dictionary.Keys
        Remove(key)
        删除一个指定的键/条目对
        RemoveAll()
        删除全部键/条目对
  2. 操作符
    1)比较操作符
    1. 等于、小于、大于、小于等于、大于等于都与我们常用的符号是一致的
    2. 不等于: <>
    2)逻辑操作符
    1. 和操作 AND
    2. 非操作 NOT
    3. 或操作 OR
    3)连接操作符
    1. +
    2. &
    可使用+ 和 & 操作符 连接字符串 ,一般使用&操作符
    4)运算符
    1. 乘方 ^
    2. 取模 Mod

    5)特殊操作符
    Is 用来比较对象

  3. 条件语句
    1) If (判断表达式) Then
    执行语句
    EndIf
    2) Select Case 表达式
    case 条件值
    执行语句
    ……
    End Select

  4. 循环
    循环控制语句有for……next循环、for……each循环、do……while循环、do……until循环、while循环五种形式。

    1. For ... Next
      For 计数器变量=开始计数值 to 最后计数值
      执行循环体
      Next

    2. for ... each
      For each 循环计数变量 in 要查看的对象或数组
      执行处理语句
      Next

      以上2个for循环,for...next、for...each 退出循环:
      exit for 语句

    3. do ... while
      Do while 条件
      执行循环体
      Loop

    4. do ... until
      Do until 条件
      执行循环体
      Loop

      以上2个Do循环,Do... while, Do ... Until 循环 退出:
      exit Do

    5. while
      While 条件
      执行循环体
      Wend

  5. 程序(函数)
    1)子程序
    1. 无返回值
    2. 结构
    Sub 子程序名(参数表)
    执行语句
    End Sub

    2)函数程序
    1. 有返回值
    2. 结构
    Function 函数程序名(参数表)
    执行语句

     		函数程序名 = 返回值 '返回返回值
     	End Function 
    

    注意:尽管在定义子程序的时候,参数列表要加括号,但在调用子程序的时候,参数列表不加括号,括号只在函数中使用。另外,子程序不能在表达式中使用。

而函数只能出现在赋值语句的右边,或者表达式中,函数不能直接使用,如果必须直接使用函数,则必须使用call语句调用,并取消返回值。

  1. 注释
    用一个不成对的单引号 '

  2. Vbs运行外部程序

    =利用 CreateObject 命令 调用外部命令=
    1)WSH也就是用来解析Vbs的宿主,本身包含了几个个常用对象:
    1、Scripting.FileSystemObject
    —> 提供一整套文件系统操作函数
    2、Scripting.Dictionary
    —> 用来返回存放键值对的字典对象
    3、Wscript.Shell
    —> 提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、读取DOS环境变量,读取链接中的设置
    4、Wscript.NetWork
    —> 提供网络连接和远程打印机管理的函数。(其中,所有Scripting对象都存放在SCRRUN.DLL文件中,所有的Wscript对象都存放在WSHOM.ocx文件中。)

    2) 例子:

     Option Explicit
     Dim objShell
    
     Set objShell = CreateObject(“Wscript.Shell”) 
     objShell.Run “notepad”
     	
    
     说明:
     	1. Set 
     		是Vbs 伪指令, 是对象引用赋值给变量   , 除str,bool, number 类的数据外的变量  皆为引用(即 处处皆对象)
     	2. 引用方法.
     		用. 调用对象中的方法
     	3. Run 函数
     		- 有三个参数
     			1)第一个:程序执行的路径
     			2)第二个:窗口形式
     				0 是在后台运行;
     				1 表示正常运行;
     				2 表示激活程序并且显示为最小化;
     				3 表示激活程序并且显示为最大化;
     				
     				一共有10个这样的参数我只列出了4个最常用的
     			3)第三个:程序执行阻塞
     				true 脚本就会等待调用的程序退出后再向后执行。
     		- 返回值
     			0		执行成功
     			非0		执行失败,为错误码
    
  3. 错误处理
    On Error Resume Next
    防止vbs脚本在发生错误时停止运行,但是它并不能真正的处理错误,需添加错误处理
    例:
    on error resume next

     	a=11
     	b=0
     	c=a/b
    
     	if err.number<>0 then
     		wscript.echo err.number & err.description  & err.source
     	end if 
    
  4. Wscript.Shell 方法
    1)命令行
    run()
    2)注册表
    1. 读
    regread(path)
    2. 写
    regwrite(path,key)
    3. 删
    regdel(path)
    注意,如果要删除关键词的值的话 一定要在路径最后加上“\”,如果不加斜线,就会删除整个关键词。
    11.FileSystemObject(FSO 文件系统对象)----- 很重要
    说明:
    参数中有Path的 指 必须含有路径 + File/Floder/Drive 等

    • 创建FSO 文件系统对象:
      Set fs = wscript.CreateObject("scripting.filesystemobject")
    • 释放
      Set fs = nothing

    1)包含对象
    1. Drive对象:
    包含储存设备的信息,包括硬盘、光驱、ram盘、网络驱动器
    2. Drives集合:
    提供一个物理和逻辑驱动器的列表
    3. File 对象:
    检查和处理文件
    4. Files 集合:
    提供一个文件夹中的文件列表
    5. Folder对象:
    检查和处理文件夹
    6. Folders集合:
    提供文件夹中子文件夹的列表
    7. Textstream对象:
    读写文本文件

    2)方法
    BulidPath:把文件路径信息添加到现有的文件路径上

    Folders:
    1. CopyFolder:
    作用:
    复制文件夹
    用法:
    CopyFolder(srcPath,desPath,IsforceCover)
    IsforceCover 参数选项 :
    true) 强制覆盖
    false) (不覆盖)默认值
    2. GetFolder:
    作用:
    返回一个文件夹对象
    用法:
    GetFolder(folderPath)
    3. CreateFolder:
    作用:
    创建文件夹
    用法:(不存在要创建文件夹时,创建文件夹)
    CreateFolder(folderPath)

    4. MoveFolder:
    	作用:
    		移动文件夹
    	用法:
    		MoveFolder(srcPathDir,desPathDir)
    		
    5. DeleteFolder:
    	作用:
    		删除文件夹及其中所有内容
    	用法:
    		DeleteFolder(folderPath)
    		
    6. FolderExists:
    	作用:
    		确定某文件夹是否存在
    	用法:
    		FolderExists(FloderPath)
    7. GetSpecialFolder:
    	作用:
    		返回指向一个特殊文件夹的对象指针
    	用法:
    		GetSpecialFolder(SpecialFolderValue)
    			SpecialFolderValue 取值:
    				0   表示windows文件夹,相关常量是windowsfolder
    				1   系统文件夹,相关常量是systemfolder
    				2   临时目录,相关常量temporaryfolder
    

    TextStream:
    1. CreateTextFile:
    作用:
    创建文本并返回一个TextStream对象
    用法:
    CreateTextFile(filePath)
    Example:
    CreateTextFile "d:\index.txt"
    2. OpenTextFile:
    作用:
    打开一个存在的文件并返回一个TextStream对象
    用法:
    OpenTextFile(srcFilePath,fileModelNum,isCreate)
    参数说明:
    fileModelNum:
    描述:
    文件的访问模式
    值:
    1 只读
    2 写入
    8 文件后追加
    isCreate:
    描述:
    文件不存在时,是否要创建当前文件
    值:
    true 创建
    false 不创建
    3. GetTempName:返回一个可以被createtextfile使用的随机产生的文件或文件夹的名称
    4. 文件读取:
    1)read(readCharNums) 读取指定 readCharNums 个字符
    2)readline 读取一行
    3)readAll 读取所有
    5. 文件指针的属性
    AtEndOfStream :
    作用:
    判断文件指针是否到文件尾
    返回:
    false 未到文件尾
    true 已在文件尾

    	AtEndOfLine:
    		作用:
    			判断文件指针是否到文件行末尾
    		返回:
    			false	未到文件行尾
    			true	已在文件行尾
    	
    	Column	& Line:
    		作用:
    			定位文件指针所在的行和列
    		注意:
    			文件打开后, 行和列的指针都将被设置为1
    6. 文件跳行:
    	skip(charNum)	跳过charNum个字符
    	Skipline		跳过一行
    7. 文件写入:
    	write(String)						写入 String 字符串
    	writeline(str)						写入 str 代表一行
    	writeBlankLines(BlankLinesNums)  	写入 BlankLinesNums 个空行
    8. 文件关闭:
    	close			
    

    File:
    文件属性:
    在windows中,文件的属性一般用数字来表示:
    0 代表normal,即普通文件未设置任何属性。
    1 代表只读文件。
    2 代表隐藏文件
    4 代表系统文件
    16 代表文件夹或目录
    32 代表存档文件
    1024 代表链接或快捷方式
    CopyFile:
    作用:
    复制文件
    用法:
    CopyFile(srcFilePath,desFilePath,isCoverFile = false)
    DeleteFile:
    作用:
    删除文件
    用法:
    DeleteFile(srcFilePath)
    FileExits:
    作用:
    确定一个文件是否存在
    用法:
    FileExits(srcFilePath)
    MoveFile:
    作用:
    移动文件
    用法:
    MoveFile(srcFilePath, desDirectoryPath)
    GetFile:
    作用:
    返回一个file对象
    用法:
    GetFile(srcFilePath)

    GetExtensionName:
    	作用:
    		返回扩展名
    	用法:
    		GetExtensionName(srcFilePath)
    GetFileName:
    	作用:
    		返回文件夹中文件名称
    	用法:
    		GetFileName(srcFilePath)
    GetParentFolderName:
    	作用:
    		返回一个文件夹的父文件夹
    	用法:
    		GetParentFolderName(srcFloderPath)
    

    Drive:
    DriveExits:确定驱动器是否存在
    GetDrive:返回一个drive对象
    GetDriveName:返回一个驱动器的名字

    Files:
    GetAbsolutePathName:返回一个文件夹或文件的绝对路径
    GetBaseName:返回一个文件或文件夹的基本路径

  5. SendKeys --- 模拟 按键
    Set WshShell=WScript.CreateObject("WScript.Shell")
    用法:
    WshShell.SendKeys(SendKeyStrings)

    SendKeyStrings 根据不同键位,有不同的写法
    1)基本键:
    	寓意:
    		指的是数字键、字母键等位置的键
    	用法:
    		例如 ‘X’ 键,
    		SendKeyStrings = “x”
    2)特殊键:
    	寓意:
    		除了基本键的所有键。
    	用法:			
    		1. Shift:
    			用 ' + ' 代之
    		2. Ctrl:
    			用 ' ^ ' 代之
    		3. Alt:
    			用 ' % ' 代之
    		4. 其余键:
    			用 ' { 键名 } ' 代之
    		5. 发多个重复键:
    			{键名  倍数 }   ---->    发 '倍数' 个键名
    			
    			
    	例子:
    		Ctrl + E + C:
    			WshShell.SendKeys("^(ec)")
    		+:
    			WshShell.SendKeys "{+}"
    		Enter:
    			WshShell.SendKeys "{Enter}"
    
  6. VBScript 关键字
    Empty 用于指示一个未初始化的【变量值】,即为空
    IsEmpty 用于测试一个变量是否未初始化
    Nothing 用于指示一个未初始化的【对象值】,或者把对象变量从对象分离用于释放系统资源。
    IsNothing 用于测试一个值是否是初始化的对象。
    Null 用于指示一个变量为无效数据。
    IsNull 用于测试一个变量为无效数据。

    True 布尔条件判断为真
    False 布尔条件判断为假

    比较:
    Empty 是【变量】未初始化
    Nothing 是【对象】未初始化
    Null 是【变量】无效数据

posted @ 2019-07-19 19:35  Kernel001  阅读(1246)  评论(0编辑  收藏  举报