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