那些年,我寫過的設定Windows系統變數的vbs指令碼

來源:互聯網
上載者:User

下面是我之前整理過的三段vbs代碼,他們的主要都是用於快速設定Windows系統變數的。這些代碼,在使用的過程中,都做了很多修改,已經記不清最初從哪裡學來的了。

第一段:

Set WshShell=CreateObject("WScript.Shell")
Set WshEnv=WshShell.Environment("User")
'WScript.Echo(WshShell.currentdirectory&"\Python27")
WshEnv.Item("Path") = WshEnv.Item("Path")&";"&WshShell.currentdirectory&"\Python27;"
WScript.Echo(WshEnv.Item("Path"))

這個代碼用於添加目前的目錄下的Python27目錄到(使用者)系統變數Path上。最初的用途是,把Python27安裝目錄、Editplus(經過一些配置)和這個vbs打包,可以用於快速搭建Python的開發環境,其中Editplus是編輯器,Python是解譯器,Editplus經過了一些設定有代碼高亮、自動所經等功能(代碼自動補全由於做得不怎麼好,被我放棄了),可以通過快速鍵方便運行Python代碼。這幾樣東西加起來用7z壓縮,還不到9M。當初學Python的時候,這個工具包是隨身攜帶,隨時可用的。

第二段:

curdir = createobject("Scripting.FileSystemObject").GetFolder(".").Path
regpath="HKEY_CURRENT_USER\Environment\"
set ws=wscript.createobject("wscript.shell")
temp=ws.regwrite(regpath & "LM_LICENSE_FILE",curdir&"\license.dat")

這段代碼用於添加使用者系統變數的一個項LM_LICENSE_FILE,值為目前的目錄下的license.dat的完整路徑,這其實是用於Modelsim的破解的。上學期學習Verilog,需要使用Modelsim。經過研究,Modelsim是用Tcl寫的介面,軟體本身有綠色軟體的性質。我把一些安裝時產生的文檔,和VHDL等其他語言的樣本和庫檔案等刪除,配合破解程式和這段vbs指令碼,完成了一個快速可用的Modelsim+Verilog開發套件,壓縮包只有19M,解壓之後,幾個點擊和雙擊就可以使用了,比超大的原始安裝程式的安裝要快和輕便了很多。

第三段:

curdir = createobject("Scripting.FileSystemObject").GetFolder(".").Path   
regpath="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\"
set ws=wscript.createobject("wscript.shell")
temp=ws.regwrite(regpath & "JAVA_HOME",curdir)
temp=ws.regwrite(regpath & "CLASSPATH",".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar")
oldpath=ws.regread(regpath & "PATH")
newpath=oldpath & ";%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin"
ws.Environment("system").Item("PATH")=newpath
temp=ws.regread(regpath & "PATH")
wscript.echo "ok"

這段代碼是用於配置Jdk的,雙擊之後,可以立即完成PATH、CLASSPATH等系統變數的設定,比從系統屬性上要快很多。當然也可以和上面的代碼一樣完成“綠色版”JDK工具包。這段代碼在Windows XP上沒有什麼問題,似乎在Windows 7下需要修改一下。

第三段代碼最值得品味的一行是

temp=ws.regread(regpath & "PATH")

這行看似沒有什麼用處,其實不然。vbs通過WScript.Shell對象設定系統變數,但是只有修改和刪除的直接方法,修改就是用等號賦值,刪除使用remove方法,而增加系統變數的直接方法,微軟沒有提供,在一些文檔上也是這麼說的。於是想添加系統變數,就得另闢蹊徑,操作註冊表,vbs可以操作註冊表,但是單單寫登錄機碼並不能立即生效,只有在重新登入後才有用,使用讀註冊表regread,似乎就是為瞭解決這個問題。上面的第二段代碼也沒有注意到這個問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.