中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么写一个自动完成系统环境变量添加的脚本
« [1] [2] »
作者:
标题: 怎么写一个自动完成系统环境变量添加的脚本 上一主题 | 下一主题
ffo1984
新手上路





积分 6
发帖 2
注册 2006-10-24
状态 离线
『楼 主』:  怎么写一个自动完成系统环境变量添加的脚本

我们公司有一个软件安装好后需要添加环境变量才能运行,因为数量太多,有点烦人,想写一个自动完成系统环境变量添加的脚本,有人会吗?

2006-10-24 22:21
查看资料  发送邮件  发短消息 网志  OICQ (78839327)  编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:  

2003/Vista下倒是有个 setx ,在XP下只能通过reg/regedit改注册表了。




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-24 22:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ffo1984
新手上路





积分 6
发帖 2
注册 2006-10-24
状态 离线
『第 3 楼』:  

这样啊!谢谢哦!看来老兄们已将享受上新的操作系统了!

2006-10-25 08:03
查看资料  发送邮件  发短消息 网志  OICQ (78839327)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


set path="c:\windows\help";%path%
  其中"c:\windows\help"只是个示范,可以把很多路径加到里面,不过别忘了中间加上";"分隔每个路径。这样不能永久的设置环境变量,只能临时用一下。要使设置的环境变量长期有效,只有手工改一下系统环境变量了,或者修改注册表。


2006-10-25 08:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 5 楼』:  

数量太多?? 路径很多吗?

2006-10-25 08:52
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 6 楼』:  

使用VBS
dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Environment("system").Item("<变量名>")="<值>"
或使用使用REG
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::系统环境变量
::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::用户环境变量
::HKEY_CURRENT_USER\Environment
reg add "%regpath%" /v "<name>" /d "<data>"
将上面的<>内容替成你需要定义的名称和值就可以了.



QQ:366840202
http://chenall.net
2006-10-25 09:26
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
alucifer
新手上路





积分 12
发帖 5
注册 2006-12-27
状态 离线
『第 7 楼』:  

如果我要给path设置值,怎么用reg add 加啊?  就是不改变path原有的值,加上我需要的值。
能写下具体怎么做么?
万分感谢!!

2006-12-27 08:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 8 楼』:  

path在注册表中为二进制表示,不是很好操作。

2006-12-27 21:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alucifer
新手上路





积分 12
发帖 5
注册 2006-12-27
状态 离线
『第 9 楼』:  

没有那么麻烦吧,就是象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命令。。。。

2006-12-27 21:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 10 楼』:  

我找到一个非常好的方法。就是利用AUTOEXEC.BAT中的SET PATH。这个原理我不是很清楚,但是已经试验成功,我也觉得很奇怪。据说WINNT都不使用AUTOEXEC.BAT了,但事实并非如此,大家做一个小实验,看你们的电脑上能否成功。
追加PATH路径而不覆盖原有路径:如果你系统盘没有AUTOEXEC.BAT,那么就建立一个,在里面追加内容SET PATH=D:\;E:\;F:\;G:\;
重新启动电脑,奇迹出现了,使用set path查看下你的PATH变量吧,居然把AUTOEXEC.BAT中设置的变量添加到了PATH变量中。真是奇怪.

2006-12-27 22:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 11 楼』:  

试验成功的跟帖,上面的路径可以改变成任何自己需要的路径,但必须注意每个路径后必须使用;来分开.

2006-12-27 22:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alucifer
新手上路





积分 12
发帖 5
注册 2006-12-27
状态 离线
『第 12 楼』:  

感谢hunrybecky, 但是真的无法通过修改注册表来添加Path吗? 
期待帮助。。。。。

2006-12-27 22:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 13 楼』:  

能够,我开始也想到通过注册表来添加,但是想到因为是使用的可扩展的字符(更改我开始说的是二进制,最后查得知是可扩展字符串,抱歉),导出注册表的是长串的数字,所以就放弃了,而意外的发现刚才哪个利用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;注意原来的变量与添加的之间没有;

2006-12-27 22:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 14 楼』:  

XP应该是不会执行AUTOEXEC.BAT,却会解析AUTOEXEC.BAT中的一些变量,路径就是其中一个。

2006-12-27 22:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by zh159 at 2006-12-27 22:30:
XP应该是不会执行AUTOEXEC.BAT,却会解析AUTOEXEC.BAT中的一些变量,路径就是其中一个。

是的,从这个例子可以说明兄的观点,而且更有意思的是,AUTOEXEC.BAT中设置的变量是添加到现有的变量中而不是替代,所以利用这个东西,应该可以做很多有意思的事情了.

2006-12-27 22:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: