Chinaunix首页 | 论坛 | 博客
  • 博客访问: 869092
  • 博文数量: 366
  • 博客积分: 10267
  • 博客等级: 上将
  • 技术积分: 4290
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:04
文章分类

全部博文(366)

文章存档

2012年(366)

分类: 系统运维

2012-03-25 18:39:57

下面是我之前整理过的三段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,似乎就是为了解决这个问题。上面的第二段代码也没有注意到这个问题。

阅读(477) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~