中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 20:22
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何用批处理修改系统path环境变量
可打印版本  22,154 / 31
第1楼 mylovelyqq 发表于 2006-11-25 09:59
初级用户 发帖 25 积分 170
[已结]如何用批处理修改系统path环境变量
目的: 修改或添加系统path环境变量,如果环境变量中有c:\123,则删除之,如果没有%System32%\qqq则添加该路径.

我在批处理中用regedit /e 或 reg export 导出注册表的HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment 项,但导出的path是下列方式的16进制数,且有多行:
"ComSpec"=hex(2):25......
"Path"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,3b,00,25,00,\
53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,3b,00,25,\ .........
"FP_NO_HOST_CHECK"="NO"
"OS"="Windows_NT"
"PROCESSOR_ARCHITECTURE"="x86"
........

请教高手:
1.对导出的注册表项如何只保留其中的path项(多行完整保留)
2.如何修改已有路径和添加新的路径

说明:在cmd中用set path方式得到的路径都绝对路径,而不是注册表中的相对路径.我希望得到相对路径,而且绝对路径好象无法导入注册表中更改path值.

[ Last edited by HAT on 2008-10-22 at 09:48 ]
第2楼 redtek 发表于 2006-11-25 11:54
金牌会员 发帖 1,147 积分 2,902
REG QUERY 查出上面的注册表内容是非16进制的,
你还不如用 REG QUERY 查询,查询的内容存到一个文件内(重定向或是For都行),

这不是现成的ASCII码吗?干吗非得要那个16进制的编过码的注册表内容啊?哈哈……
第3楼 mylovelyqq 发表于 2006-11-25 13:13
初级用户 发帖 25 积分 170
嘿嘿,谢了
第4楼 electronixtar 发表于 2006-11-26 01:34
铂金会员 发帖 2,672 积分 7,493
path=%path%;D:\My_Path
第5楼 vkill 发表于 2006-11-26 01:42
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by electronixtar at 2006-11-26 01:34:
path=%path%;D:\My_Path

呵呵,我也是把这个加到autoexec.bat
第6楼 mylovelyqq 发表于 2006-11-26 04:40
初级用户 发帖 25 积分 170
Originally posted by electronixtar at 2006-11-26 01:34 AM:
path=%path%;D:\My_Path


第4楼和第5楼的兄弟,你想得也太简单了吧,你运行完你的批处理后看看系统的path环境变量,添加的路径根本就保存不了,只是在你的批处理里有效而已,好好想想吧
第7楼 namejm 发表于 2006-11-26 06:21
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  修改环境变量一般要到注册表里去动手脚,因我对这个也不熟悉,只能点到这个份上了,请注册表方面的高手出马鼎力相助。
第8楼 vkill 发表于 2006-11-26 06:33
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by mylovelyqq at 2006-11-26 04:40:


第4楼和第5楼的兄弟,你想得也太简单了吧,你运行完你的批处理后看看系统的path环境变量,添加的路径根本就保存不了,只是在你的批处理里有效而已, ...


>>c:\autoexec.bat echo path %path%;c:\tools

我这样用的啊~一直是
第9楼 lxmxn 发表于 2006-11-26 07:13
版主 发帖 4,938 积分 11,386

  添加系统环境变量:

  环境变量值需要手工输入,导入注册表的,应该是永久的。不知道系统环境变量可容纳的字符是多少,如果容纳的比较小,可能导入不成功,呵呵,我也不知道。
第10楼 mylovelyqq 发表于 2006-11-29 02:46
初级用户 发帖 25 积分 170
我对 for 命令实在是不熟,不过对 reg query .../v Path导出的值用了一个叫strrpc 1.0的小工具进行了文本替换,还是达到了目的
第11楼 redtek 发表于 2006-11-29 03:06
金牌会员 发帖 1,147 积分 2,902
Windows Server 2003 自带一个修改用户、系统环境变量并永久生效的工具: SETX.EXE

这个工具已经强大到你可以指定存在于一个文本文件内的(x,y)座标来直接取文本值并设置到环境变量内,并永久生效。


(备注: 下面 SETX 工具的使用说明



下面是这个 SETX.EXE Windows Server 2003自带的环境变量操纵工具的中文使用技巧~:)


(备注: 下面使用技巧来自互联网,因COPY时未见标有原作者的记录数据,故原作者名未在下文标注出来。下面文章版权归原作者所有)





(注:工具在附件内,请使用前用杀毒软件扫描一遍以确保安全应用)

附件
setx.rar (25.38 KiB)
第12楼 ccwan 发表于 2006-11-29 03:19
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
redtek兄总是这么热情,呵呵……
偶来灌水

第13楼 vkill 发表于 2006-11-29 07:47
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
写入autoexec.bat 完全可以啊~至少我03测试是好的
第14楼 mylovelyqq 发表于 2006-11-29 08:18
初级用户 发帖 25 积分 170
感谢 redtek 提供的 setx,在XP下可以运行,目前还没时间多用.
我用的替换文本的小工具strrpc也特别好用,明儿再上传吧.

另外re vkill
改系统的autoexec.bat可是可以,但我不建议这么做,一是现在很少有人在windows操作系统下去改autoexec.bat,除非是做DOS启动盘,可能很多人都忘了或删除了这个文件.
二是尽量只在一个地方设置系统环境变量,如果在自动批处理和系统的环境变量区都设置了环境变量,以后要添加或修改系统环境变量时就要检查或修改二个地方,给自己的操作带来麻烦,如果有太多重复的路径,说不定系统找个文件还要找半天,嘿嘿,它可不知道哪些路径是相同的.
第15楼 vkill 发表于 2006-11-29 08:23
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by mylovelyqq at 2006-11-29 08:18:
感谢 redtek 提供的 setx,在XP下可以运行,目前还没时间多用.
我用的替换文本的小工具strrpc也特别好用,明儿再上传吧.

另外re vkill
改系统的autoexec.bat叠...

兄常改path ???我一般设置两个路径,以后再也不管了,觉得还好了,呵呵~个人爱好
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023