- Office VBA開(kāi)發(fā)經(jīng)典:中級(jí)進(jìn)階卷
- 劉永富 劉行
- 1193字
- 2019-11-22 18:29:07
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)境變量
- Learning Python Web Penetration Testing
- Delphi程序設(shè)計(jì)基礎(chǔ):教程、實(shí)驗(yàn)、習(xí)題
- Offer來(lái)了:Java面試核心知識(shí)點(diǎn)精講(原理篇)
- Learning ASP.NET Core 2.0
- 軟件測(cè)試工程師面試秘籍
- Apache Spark 2 for Beginners
- Julia機(jī)器學(xué)習(xí)核心編程:人人可用的高性能科學(xué)計(jì)算
- 青少年P(guān)ython編程入門
- 高級(jí)語(yǔ)言程序設(shè)計(jì)(C語(yǔ)言版):基于計(jì)算思維能力培養(yǎng)
- Learning FuelPHP for Effective PHP Development
- Mastering C++ Multithreading
- Microsoft 365 Certified Fundamentals MS-900 Exam Guide
- Azure Serverless Computing Cookbook
- 3ds Max印象 電視欄目包裝動(dòng)畫與特效制作
- 零基礎(chǔ)輕松學(xué)C++:青少年趣味編程(全彩版)