官术网_书友最值得收藏!

2.5 操作環(huán)境變量

環(huán)境變量(Environment Variables)一般是指指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù),如臨時(shí)文件夾位置和系統(tǒng)文件夾位置等。

環(huán)境變量是在操作系統(tǒng)中一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將用到的信息。例如Windows和DOS操作系統(tǒng)中的path環(huán)境變量,當(dāng)要求系統(tǒng)運(yùn)行一個(gè)程序而沒(méi)有告訴它程序所在的完整路徑時(shí),系統(tǒng)除了在當(dāng)前目錄下面尋找此程序外,還應(yīng)到path中指定的路徑去找。例如之前講過(guò)的Shell函數(shù)中,可執(zhí)行文件的路徑可以不寫前面的所在路徑,只寫文件名稱即可。這是因?yàn)檫@些文件的所在路徑已經(jīng)保存在環(huán)境變量中。

本節(jié)講述如何用WshShell操作環(huán)境變量。

對(duì)于Windows 7系統(tǒng),查看環(huán)境變量的方法是,進(jìn)入控制面板,單擊“系統(tǒng)和安全”→“系統(tǒng)”→“高級(jí)系統(tǒng)設(shè)置”,然后在“系統(tǒng)屬性”對(duì)話框中切換到“高級(jí)”選項(xiàng)卡,接著單擊“環(huán)境變量”按鈕,如圖2-39所示。

圖2-39 設(shè)置環(huán)境變量

然后彈出“環(huán)境變量”對(duì)話框,如圖2-40所示。

對(duì)話框分為上下兩部分,上面部分是用戶變量(User),下面是系統(tǒng)變量(System),很多應(yīng)用程序都把重要的路徑保存在系統(tǒng)變量的Path變量中。

以系統(tǒng)變量為例,對(duì)話框中看到的OS,就是一個(gè)環(huán)境變量的變量名稱,而后面的Windows_NT是一個(gè)字符串,它表示變量的值。在邏輯上,與程序語(yǔ)言中的字典(鍵值對(duì))非常相似。

通過(guò)環(huán)境變量對(duì)話框可以進(jìn)行增加、刪除、修改變量等操作。

圖2-40 “環(huán)境變量”對(duì)話框

WshShell對(duì)象下面有一個(gè)Environment成員,該成員會(huì)返回一個(gè)環(huán)境變量集合WshEnvironment對(duì)象,通過(guò)訪問(wèn)該對(duì)象,可以實(shí)現(xiàn)環(huán)境變量的查看、修改和增刪。

2.5.1 查看和遍歷環(huán)境變量

下面的過(guò)程遍歷系統(tǒng)環(huán)境變量(System)的所有變量。

代碼分析:針對(duì)遍歷到的每一個(gè)變量,v得到的是一個(gè)字符串,對(duì)于每一個(gè)字符串,以=為分界線,等號(hào)左側(cè)是變量名,右側(cè)是變量值,如圖2-41所示。

圖2-41 遍歷系統(tǒng)環(huán)境變量

如果要單獨(dú)顯示變量名和字符串,用Split函數(shù)處理一下即可。也就是把打印語(yǔ)句改為如下形式。

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

如果要查看其中某個(gè)環(huán)境變量的值,可以用Item獲取。

運(yùn)行下面的過(guò)程,獲取CCHZPATH這個(gè)環(huán)境變量的取值。

運(yùn)行上述過(guò)程,對(duì)話框中給出環(huán)境變量的值,如圖2-42所示。

如果要遍歷用戶環(huán)境變量,只需要把上述過(guò)程中的WS.Environment("System")替換成WS.Environment("User")即可。

圖2-42 獲取環(huán)境變量的值

2.5.2 新建和修改環(huán)境變量

無(wú)論是新建一個(gè)環(huán)境變量,還是修改已有變量的取值,語(yǔ)法都是一樣的。

下面的過(guò)程更改CCHZPATH環(huán)境變量的路徑。

運(yùn)行上述過(guò)程,然后在環(huán)境變量對(duì)話框中核對(duì),如圖2-43所示。

再例如SysVariables.Item("Perfect") = "C:\temp"可以直接創(chuàng)建一個(gè)名稱為Perfect的新環(huán)境變量,并且賦值。

圖2-43 自動(dòng)修改環(huán)境變量的值

2.5.3 刪除環(huán)境變量

使用環(huán)境變量對(duì)象的Remove方法,可以刪除指定名稱的環(huán)境變量。例如SysVariables.Remove "CCHZPATH"把名為"CCHZPATH"的環(huán)境變量刪除。

如果要?jiǎng)h除所有環(huán)境變量,循環(huán)調(diào)用Remove方法即可。下面的代碼刪除User下的所有環(huán)境變量。

代碼分析:如果在循環(huán)過(guò)程中對(duì)集合中的元素進(jìn)行增刪,這樣的操作比較危險(xiǎn)。因此,首先把目前所有的環(huán)境變量的名稱保存到一個(gè)Collection對(duì)象或者動(dòng)態(tài)數(shù)組中。

然后循環(huán)Collection中的每一個(gè)字符串,再移除環(huán)境變量,如圖2-44所示。

圖2-44 批量刪除所有環(huán)境變量

主站蜘蛛池模板: 河北区| 江北区| 营口市| 济宁市| 中牟县| 溧阳市| 五大连池市| 铜鼓县| 鄂托克旗| 曲松县| 庆云县| 科尔| 封开县| 桃源县| 农安县| 白河县| 奉贤区| 潞西市| 固阳县| 通海县| 富阳市| 莎车县| 社旗县| 锡林浩特市| 应用必备| 西华县| 南丹县| 景东| 凌海市| 双城市| 新营市| 叶城县| 大厂| 皮山县| 子长县| 禄丰县| 临朐县| 长治县| 康定县| 绍兴市| 普兰县|