Office VBA开发经典:中级进阶卷
上QQ阅读APP看书,第一时间看更新

2.5 操作环境变量

环境变量(Environment Variables)一般是指指定操作系统运行环境的一些参数,如临时文件夹位置和系统文件夹位置等。

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。例如之前讲过的Shell函数中,可执行文件的路径可以不写前面的所在路径,只写文件名称即可。这是因为这些文件的所在路径已经保存在环境变量中。

本节讲述如何用WshShell操作环境变量。

对于Windows 7系统,查看环境变量的方法是,进入控制面板,单击“系统和安全”→“系统”→“高级系统设置”,然后在“系统属性”对话框中切换到“高级”选项卡,接着单击“环境变量”按钮,如图2-39所示。

图2-39 设置环境变量

然后弹出“环境变量”对话框,如图2-40所示。

对话框分为上下两部分,上面部分是用户变量(User),下面是系统变量(System),很多应用程序都把重要的路径保存在系统变量的Path变量中。

以系统变量为例,对话框中看到的OS,就是一个环境变量的变量名称,而后面的Windows_NT是一个字符串,它表示变量的值。在逻辑上,与程序语言中的字典(键值对)非常相似。

通过环境变量对话框可以进行增加、删除、修改变量等操作。

图2-40 “环境变量”对话框

WshShell对象下面有一个Environment成员,该成员会返回一个环境变量集合WshEnvironment对象,通过访问该对象,可以实现环境变量的查看、修改和增删。

2.5.1 查看和遍历环境变量

下面的过程遍历系统环境变量(System)的所有变量。

代码分析:针对遍历到的每一个变量,v得到的是一个字符串,对于每一个字符串,以=为分界线,等号左侧是变量名,右侧是变量值,如图2-41所示。

图2-41 遍历系统环境变量

如果要单独显示变量名和字符串,用Split函数处理一下即可。也就是把打印语句改为如下形式。

    Debug.Print Split(v, "=")(0), Split(v, "=")(1)

如果要查看其中某个环境变量的值,可以用Item获取。

运行下面的过程,获取CCHZPATH这个环境变量的取值。

运行上述过程,对话框中给出环境变量的值,如图2-42所示。

如果要遍历用户环境变量,只需要把上述过程中的WS.Environment("System")替换成WS.Environment("User")即可。

图2-42 获取环境变量的值

2.5.2 新建和修改环境变量

无论是新建一个环境变量,还是修改已有变量的取值,语法都是一样的。

下面的过程更改CCHZPATH环境变量的路径。

运行上述过程,然后在环境变量对话框中核对,如图2-43所示。

再例如SysVariables.Item("Perfect") = "C:\temp"可以直接创建一个名称为Perfect的新环境变量,并且赋值。

图2-43 自动修改环境变量的值

2.5.3 删除环境变量

使用环境变量对象的Remove方法,可以删除指定名称的环境变量。例如SysVariables.Remove "CCHZPATH"把名为"CCHZPATH"的环境变量删除。

如果要删除所有环境变量,循环调用Remove方法即可。下面的代码删除User下的所有环境变量。

代码分析:如果在循环过程中对集合中的元素进行增删,这样的操作比较危险。因此,首先把目前所有的环境变量的名称保存到一个Collection对象或者动态数组中。

然后循环Collection中的每一个字符串,再移除环境变量,如图2-44所示。

图2-44 批量删除所有环境变量