使用WMIC永久設置你的環境變量


關於wmic,引用一下這位哥們兒的話http://technet.microsoft.com/en-us/library/bb742610.aspx

WMIC擴展WMI(Windows Management Instrumentation,Windows管理規范),提供了從命令行接口和批命令腳本執行系統管理的支持。在WMIC出現之前,如果要管理WMI系統,必須使用一些專門的WMI應用,例如SMS,或者使用WMI的腳本編程API,或者使用象CIM Studio之類的工具。如果不熟悉C++之類的編程語言或VBScript之類的腳本語言,或者不掌握WMI名稱空間的基本知識,要用WMI管理系統是很困難的。WMIC改變了這種情況,為WMI名稱空間提供了一個強大的、友好的命令行接口。WMIC比WMI簡單、直觀得多,這主要是由於使用了別名(Alias)。別名機制獲取用戶在命令行上輸入的一些簡單命令,按照預定義的方式操作WMI名稱空間,例如根據一個簡單的WMIC別名Get命令構造出一個復雜的WMI查詢語言(WQL)命令。從這個意義上看,別名是用戶和名稱空間之間一個簡化操作的中間層。

說一下wmic的命令格式:wmic+全局開關+別名+wql語句+動詞+副詞(或者說是動詞的參數)+動詞開關

詳細情況請參考微軟官方網站:http://technet.microsoft.com/zh-cn/library/cc779482(WS.10).aspx

理解多少,看你的悟性咯。理解了,這是個超強大的命令……

1:在系統變量的某個環境變量中增加一個新的路徑:

先查看環境變量中的Path的值:

在命令提示符中輸入命令:wmic environment where "name='Path'" get UserName,VariableValue

如下:

D:\PowerCmd\PowerCmd(綠色版)>wmic environment where "name='Path'" get UserName,VariableValue

查詢結果如下:

UserName VariableValue

<SYSTEM> C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;d:\Program Files (x86)\Windows7Master;C:\sc

在Path中新增加環境變量C:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe

輸入如下命令:

wmic environment where "name='Path' and UserName='<system>'" set VariableValue="%path%;C:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe"

然后輸出:

Updating property(s) of '\\S69JQRRPHB8FBP1\ROOT\CIMV2:Win32_Environment.Name="Path",UserName="<SYSTEM>"'

Property(s) update successful.

表明修改正確!

然后再查詢:

wmic environment where "name='Path'" get UserName,VariableValue

結果為:

UserName VariableValue

<SYSTEM> C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;d:\Program Files (x86)\Windows7Master;C:\sc;C:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe

2:在系統變量中創建一個環境變量:

設置:

D:\PowerCmd\PowerCmd(綠色版)>set home=C:\Program Files (x86)\PPLive\PPTV

wmic ENVIRONMENT create name="PPTV_HOME",username="<system>",VariableValue="%home%"

D:\PowerCmd\PowerCmd(綠色版)>Instance creation successful.

查詢:

D:\PowerCmd\PowerCmd(綠色版)>wmic environment where "name='PPTV_HOME'" get UserName,VariableValue

UserName VariableValue

<SYSTEM> C:\Program Files (x86)\PPLive\PPTV

刪除:

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='PPTV_HOME'" delete

Deleting instance \\S69JQRRPHB8FBP1\ROOT\CIMV2:Win32_Environment.Name="PPTV_HOME",UserName="<SYSTEM>"

Instance deletion successful.

再次查詢:

D:\PowerCmd\PowerCmd(綠色版)>wmic environment where "name='PPTV_HOME'" get UserName,VariableValue

No Instance(s) Available.

注:上面創建的環境變量時也可以分為兩步:

(1)D:\PowerCmd\PowerCmd(綠色版)>set home=C:\Program Files (x86)\PPLive\PPTV

(2)D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT create name="PPTV_HOME",username="<system>",VariableValue="%home%"

Instance creation successful.

3:好的,現在我們通過命令行來創建JAVA環境變量

set p home="C:\java\jdk"

wmic ENVIRONMENT where "name='JAVA_HOME'" delete

wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%home%"

wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%"

wmic ENVIRONMENT where "name='CLASSPATH'" delete

wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar"

具體執行如下:

(1)先創建JAVA_HOME,我們不管原來電腦中有沒有,先刪除JAVA_HOME(考慮到假如有的話),然后再重新建立:

D:\PowerCmd\PowerCmd(綠色版)>set home="C:\java\jdk"

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='JAVA_HOME'" delete

No Instance(s) Available.

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%home%"

Instance creation successful.

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='JAVA_HOME'"

Caption Description InstallDate Name Status SystemVariable UserName VariableValue

<SYSTEM>\JAVA_HOME <SYSTEM>\JAVA_HOME JAVA_HOME OK TRUE <SYSTEM> C:\java\jdk

格式見下圖:

clip_image001

(2)然后設置Path中的對應變量值,先解釋一下,在set命令中的%%JAVA_HOME%%的雙百分號,前一個和高級語言中的轉義字符作用類似,也就是說

兩個%%號表示路徑中的一個%,而%JAVA_HOME%表示變量JAVA_HOME變量值,也就是我們已經設置的路徑,還有一點需要注意的是最后的%Path%千萬不可以

省略,否則將會刪去原Path的所有值!%Path%不用多說了吧,表示原來的Path值,具體命令執行如下:

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%"

Updating property(s) of '\\S69JQRRPHB8FBP1\ROOT\CIMV2:Win32_Environment.Name="Path",UserName="<SYSTEM>"'

Property(s) update successful.

格式見下圖:

clip_image002

(3)然后設置CLASSPATH變量對應的值,具體命令執行如下:

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='CLASSPATH'" delete

No Instance(s) Available.

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar"

Instance creation successful.

D:\PowerCmd\PowerCmd(綠色版)>wmic ENVIRONMENT where "name='CLASSPATH'"

Caption Description InstallDate Name Status SystemVariable UserName VariableValue

<SYSTEM>\CLASSPATH <SYSTEM>\CLASSPATH CLASSPATH OK TRUE <SYSTEM> .;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar

格式見下圖:

clip_image003

好的,我們用命令行解決了設置問題。

額……或許你該罵我了,什么玩意兒,這么麻煩,我還不如打開可視化界面一個個設置呢?別急,別急……

用批處理可以幫我們一次性完成這些繁瑣的工作,你只需要寫一次,然后無論是你重新裝了系統,亦或是換了JDK的位置,你都不必再去麻煩,只需要

將制作成的批處理放在對應的JDK目錄下,然后雙擊既可以了,是不是很帥氣,嗯,我覺得還是蠻好玩兒的,那么看看怎么寫吧:

首先最起碼你得知道一點批處理的基本知識吧,如果不知道……自己就去網上查查吧……我在這兒說個主要的:

%~dp0

其中%~0代表批處理本身所在的絕對路徑路徑,中間的d代表擴展到驅動器(driver),p代表擴展到批處理的目錄(path)不包括驅動器,均是就批處理本身所在位置而言的。

演示如下圖(set.bat的文件在桌面,在我的電腦里其絕對路徑為:C:\Users\Administrator\Desktop\set.bat):

在桌面上建立一個set.bat文件,內容可以用記事本編輯,看圖(代碼不多,自己敲一下吧)

clip_image004

輸入后,雙擊運行,結果如下:

clip_image005

我就不在分析了,很明顯的。

所以我們用%~0dp來代表批處理的所在的目錄,因此你制作成的批處理務必要放在你的JDK目錄下,比如你的jdk目錄是c:\java\jdk,那么你就把這個批處理文件放到jdk文件夾下即可,那么這里的%~0dp便代表c:\java\jdk\

因此我們得到了所謂的home值,也就是JAVA_HOME的值。因此批處理文件書寫如下:

代碼如下(自帶的代碼配色太難看了,所以發張好看的截圖……):

clip_image006

@echo off

echo Begin to set Java environment variable:

echo Please wait a moment......

echo %~dp0

wmic ENVIRONMENT where "name='JAVA_HOME'" delete

wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%~dp0"

wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;%Path%"

wmic ENVIRONMENT where "name='CLASSPATH'" delete

wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar"

echo ---------------------------------------------------------------------

echo Done successfully!

echo You can get what done in your the dirctory of the [set.bat] !

echo ---------------------------------------------------------------------

wmic ENVIRONMENT where "name='JAVA_HOME'">%~dp0text.txt

wmic ENVIRONMENT where "name='Path'" >> %~dp0text.txt

wmic ENVIRONMENT where "name='CLASSPATH'">>%~dp0text.txt

pause


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM