Dictionary对象
Dictionary对象是一个COM组件,提供了信息存储的功能。它用键对(key-item pairs)来存储信息,每个item值都会对应一个key,你可以把Dictionary想象成下面的这样的一个集合,每行条目就是一个键对:
{ "key","item" name,web sex,male height,182cm weight,80kg ... }
Dictionary很像一个数组,但是不同的是,Dictionary 不要求使用前确定需要存储的元素的数目。
当创建了一个 Dictionary 对象之后,需要配置 Dictionary 的字符串比较模式,Dictionary有两种字符串比较模式:binary mode和text mode。在binary模式下,脚本的字符串处理是以ASCⅡ码进行的,所以对于每个键对中的key是区分大小写的,而text模式不会,假设在binary模式下建立两个名称为name和Name的key,这个操作是可行的,而在text模式下则会得到提示该key已存在。可以使用Dictionary对象的CompareMode属性可以设置字符串比较模式,该属性有两个值:
0-代表二进制模式,这个是默认选项。
1 – 代表 text 模式。
Dictionary对象提供了一些操作方法,其中Add方法可以向Dictionary中添加key-item对,Add需要两个参数,按照如下顺序并且用逗号分开:
CreateObject("Scripting.Dictionary").Add "key","item"
下面演示如何使用vbs创建一个Dictionary实例:
'创建一个Dictionary实例
Dim objDictionary
Set objDictionary = CreateObject("Scripting.Dictionary")
'设置字符串比较模式为text模式
objDictionary.CompareMode = 1
'添加key-item对
objDictionary.Add "name","web"
objDictionary.Add "sex","male"
objDictionary.Add "height","182cm"
objDictionary.Add "weight","80kg"
其他一些方法
'显示key-item对的数量
Wscript.Echo objDictionary.Count
'返回
4
'返回特定key的item值
Wscript.Echo objDictionary.Item("name")
'返回
web
'注意 当输入的key的不存在时,并不会报错,脚本会新建一个key,把输入的字符作为key名称,并给item赋值Null
'检查特定key是否存在,存在返回-1,否则返回0
Wscript.Echo objDictionary.Exists("name")
'返回
-1
'修改特定的key的值
objDictionary.Item("name") = "scott"
Wscript.Echo objDictionary.Item("name")
'返回
scott
'移除key-item对
objDictionary.Remove("name") '删除一对
objDictionary.RemoveAll '删除所有对
此外还能返回集合
'显示所有key
Set colkey = objDictionary.Keys
For Each sigkey in colkey
Wscript.Echo sigkey
Next
'返回
name
sex
height
weight
'显示所有item
Set colitem = objDictionary.Items
For Each sigitem in colitem
Wscript.Echo sigitem
Next
'返回
web
male
182cm
80kg
转载于:https://blog.51cto.com/967169/1223351