关于环境变量的设置,50分送高手
有一程序,每次使用时要修改"PATH"环境变量,并且增加几个用户的环境变量和几个系统的环境变量才能运行,现在想写个小脚本来轻松完成这一步骤,曾经想过用DOS的批处理命令,但是DOS对环境变量的设置是临时的.也想过修改AUTOEXEC.BAT,但是这个文件在XP下就没用了,而且因为可能的客户对计算机不是很了解,希望达到的效果是只运行一个程序就完成,请问有什么办法能够实现? 或者有什么办法能够让DOS里设置的环境变量永久有效? 谢谢!
参考答案:写个批处理运行一下就可以了。
set path=%path%;+需要添加的路径
如
set path=%path%;d:\bat;
9月10日的修改:
真是不好意思,我以为这样可以,因为我想这样就可以使path变为你想要的结果,但是自己没有做测试。
现在要达到这样的效果,只能通过写一个脚本了。
把下列代码像批处理一样打开一个文本,复制进去,然后存为.vbs文件,双击即可运行。
脚本开始:------------------------------------------------
On Error Resume Next
Dim oWshShell, sOldPath, sNewPath
Const csMyPath="d:\bin;"
'上面改为你需要添加的目录。 注意格式
Set oWshShell = WScript.CreateObject("WScript.Shell")
sOldPath=oWshShell.RegRead("HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment\path")
sNewPath=sOldPath+csMyPath
oWshShell.RegWrite "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment\path", sNewPath, "REG_SZ"
msgbox (csMyPath & "已经成功添加到了环境目录。")
'-----------复制到这根线之上-------------------------------
我测试过了,这样在我的电脑属性高级环境变量里可以看到已经添加了,但是在cmd-path里还看不到,
运行完了必须注销过后才能永久使用,而且这个时候 cmd-path也看得到了。注意这个脚本只加环境不减环境的,所以只能运行一次哦,多运行了就添加了很多个了。
以后我再修改为检测是否曾经运行过。
看起来我真的很想要你的那50分.....
9月11日的修改:
在原有程序的基础上添加了用户互动功能,且添加了该程序只能运行一次的功能。
程序如下:
Dim oWshShell, sOldPath, sNewPath ,csMyPath,ctFile
Set oWshShell = WScript.CreateObject("WScript.Shell")
Set ctFile=CreateObject("Scripting.FileSystemObject")
If (ctFile.FileExists("c:\log.ini") ) Then
msgbox ("对不起,你以前运行过这个程序,环境变量只能添加一次。")
Else
csMyPath = inputbox ("请输入需要添加到环境变量的目录,末尾要加分号")
sOldPath=oWshShell.RegRead("HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment\path")
sNewPath=sOldPath+csMyPath
oWshShell.RegWrite "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment\path", sNewPath, "REG_SZ"
ctFile.CreateTextFile ("c:\log.ini")
msgbox ( csMyPath & " 已经成功添加到了环境目录。")
End if
'------------------Yobo_lily版权,复制请包含这一行---------