中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 22:51
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么写一个自动完成系统环境变量添加的脚本
可打印版本  8,747 / 19
第1楼 ffo1984 发表于 2006-10-24 22:21
新手上路 发帖 2 积分 6
怎么写一个自动完成系统环境变量添加的脚本
我们公司有一个软件安装好后需要添加环境变量才能运行,因为数量太多,有点烦人,想写一个自动完成系统环境变量添加的脚本,有人会吗?
第2楼 electronixtar 发表于 2006-10-24 22:38
铂金会员 发帖 2,672 积分 7,493
2003/Vista下倒是有个 setx ,在XP下只能通过reg/regedit改注册表了。
第3楼 ffo1984 发表于 2006-10-25 08:03
新手上路 发帖 2 积分 6
这样啊!谢谢哦!看来老兄们已将享受上新的操作系统了!
第4楼 lxmxn 发表于 2006-10-25 08:11
版主 发帖 4,938 积分 11,386


  其中"c:\windows\help"只是个示范,可以把很多路径加到里面,不过别忘了中间加上";"分隔每个路径。这样不能永久的设置环境变量,只能临时用一下。要使设置的环境变量长期有效,只有手工改一下系统环境变量了,或者修改注册表。
第5楼 vkill 发表于 2006-10-25 08:52
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
数量太多?? 路径很多吗?
第6楼 chenall 发表于 2006-10-25 09:26
银牌会员 发帖 469 积分 1,276 来自 福建泉州
使用VBS

或使用使用REG

将上面的<>内容替成你需要定义的名称和值就可以了.
第7楼 alucifer 发表于 2006-12-27 08:25
新手上路 发帖 5 积分 12
如果我要给path设置值,怎么用reg add 加啊?  就是不改变path原有的值,加上我需要的值。
能写下具体怎么做么?
万分感谢!!
第8楼 HUNRYBECKY 发表于 2006-12-27 21:24
银牌会员 发帖 442 积分 1,179
path在注册表中为二进制表示,不是很好操作。
第9楼 alucifer 发表于 2006-12-27 21:49
新手上路 发帖 5 积分 12
没有那么麻烦吧,就是象6楼说的,用:
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
reg add "%regpath%" /v "Path" /d "<data>"

但是这样会覆盖Path原来的值。
我试了试这样写:
set  regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
set  Path=<data>;%Path%
reg add "%regpath%" /v "Path" /d "%Path%"

但是出现 error : too many command-line .......

我的想法就是把原来的值倒出,修改后再导入,但是不熟悉dos命令。。。。
第10楼 HUNRYBECKY 发表于 2006-12-27 22:16
银牌会员 发帖 442 积分 1,179
我找到一个非常好的方法。就是利用AUTOEXEC.BAT中的SET PATH。这个原理我不是很清楚,但是已经试验成功,我也觉得很奇怪。据说WINNT都不使用AUTOEXEC.BAT了,但事实并非如此,大家做一个小实验,看你们的电脑上能否成功。
追加PATH路径而不覆盖原有路径:如果你系统盘没有AUTOEXEC.BAT,那么就建立一个,在里面追加内容SET PATH=D:\;E:\;F:\;G:\;
重新启动电脑,奇迹出现了,使用set path查看下你的PATH变量吧,居然把AUTOEXEC.BAT中设置的变量添加到了PATH变量中。真是奇怪.
第11楼 HUNRYBECKY 发表于 2006-12-27 22:17
银牌会员 发帖 442 积分 1,179
试验成功的跟帖,上面的路径可以改变成任何自己需要的路径,但必须注意每个路径后必须使用;来分开.
第12楼 alucifer 发表于 2006-12-27 22:23
新手上路 发帖 5 积分 12
感谢hunrybecky, 但是真的无法通过修改注册表来添加Path吗? 
期待帮助。。。。。
第13楼 HUNRYBECKY 发表于 2006-12-27 22:30
银牌会员 发帖 442 积分 1,179
能够,我开始也想到通过注册表来添加,但是想到因为是使用的可扩展的字符(更改我开始说的是二进制,最后查得知是可扩展字符串,抱歉),导出注册表的是长串的数字,所以就放弃了,而意外的发现刚才哪个利用AUTOEXEC.BAT的方法.现在使用注册表的方法也已经成功,实际上可扩展字符也不影响,直接使用一般的REG_SZ就可以了.方法补如下:
@ECHO OFF
SET SE=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
REG ADD "%SE%" /V Path /t REG_EXPAND_SZ /d %PATH%G:\ACCESS; /f
@ECHO ON

注意的是%SPATH%G:\ACCESS;注意原来的变量与添加的之间没有;
第14楼 zh159 发表于 2006-12-27 22:30
金牌会员 发帖 1,467 积分 3,687
XP应该是不会执行AUTOEXEC.BAT,却会解析AUTOEXEC.BAT中的一些变量,路径就是其中一个。
第15楼 HUNRYBECKY 发表于 2006-12-27 22:33
银牌会员 发帖 442 积分 1,179
Originally posted by zh159 at 2006-12-27 22:30:
XP应该是不会执行AUTOEXEC.BAT,却会解析AUTOEXEC.BAT中的一些变量,路径就是其中一个。



是的,从这个例子可以说明兄的观点,而且更有意思的是,AUTOEXEC.BAT中设置的变量是添加到现有的变量中而不是替代,所以利用这个东西,应该可以做很多有意思的事情了.
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023