中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:22
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么写一个自动完成系统环境变量添加的脚本
可打印版本  9,107 / 19
第16楼 HUNRYBECKY 发表于 2006-12-27 22:56
银牌会员 发帖 442 积分 1,179
经过多次实验表明:使用AUTOEXEC.BAT的确能添加变量,添加的变量不会写入注册表中的相关项,同时也不会出现在"我的电脑"中的用户和系统变量列表中,但是这些变量是可以发挥作用的,我使用AUTOEXEC.BAT添加LANG=CHS后proe可以从英文版本变成中文版,把LANG=EN可变成英文了,哈哈,真有意思,我添加了SET PATH=E:\ACAD2000;E:\ACAD2000\Autodesk Shared;变量后我的绿色AUTOCAD就再也不出现找不到路径的提示了,说明autoexec.bat中的变量的确是个好东西。
第17楼 alucifer 发表于 2006-12-28 01:23
新手上路 发帖 5 积分 12
非常感谢hunrybecky , 我这也试验成功了。
第18楼 qzwqzw 发表于 2006-12-28 21:47
银牌会员 发帖 636 积分 2,343
注册表中的PATH是sz还是expand_sz,具体取决于环境变量的取值

如果环境变量中嵌套引用环境变量,则必须使用expand_sz,否则使用二者都是可以的

xp下autoexec的问题搜索以前的帖子看看吧

http://www.cn-dos.net/forum/viewthread.php?tid=17155&fpage=1&highlight=
第19楼 HUNRYBECKY 发表于 2006-12-28 22:38
银牌会员 发帖 442 积分 1,179
Originally posted by qzwqzw at 2006-12-28 21:47:
注册表中的PATH是sz还是expand_sz,具体取决于环境变量的取值

如果环境变量中嵌套引用环境变量,则必须使用expand_sz,否则使用二者都是可以的

xp丠...


根据兄的观点,我去查了一些资料和对比了注册表,发现好象也不是很准确,MS给的解释是这样的:REG_SZ 表示长度固定的文本字符串;而REG_EXPAND_SZ 表示长度可变的数据字符串,这种数据类型包括程序或服务使用该数据时解析的变量。 见http://support.microsoft.com/kb/256986/
按照MS的解释那么程序或服务使用的路径都应该使用REG_EXPAND_SZ 类型,但是我把用户的环境变量TEMP设置成REG_SZ也可以同样解析到,我就有点不懂,谁能给一个比较完整合理的解释呢?

还有,我对注册表的这个两个类型的数据进行了对比,发现一般固定的文本都使用的是REG_SZ,而只要使用了带%%变量的路径都使用的是REG_EXPAND_SZ,也许这就是所谓的固定和不固定吧.
第20楼 HUNRYBECKY 发表于 2006-12-28 22:42
银牌会员 发帖 442 积分 1,179
刚才又找到一些资料,这里是这样解释的,比较合理:
REG_SZ
REG_SZ代表一个简单的文本字符串,它是注册表中最常见的一种数据类型,在字符串编辑器对话框中可以输入许多类型的信息,如名称、路径、标题或说明文字等。REG_SZ也可以是一个数字,例如可用来表示RGB颜色色码,或者版本号等其他类型的信息。

REG_EXPAND_SZ
代表一个可扩展的字符串。其编辑器和标准REG_SZ字符串编辑类似,只是在变量用法上有所差异。在REG_EXPAND_SZ编辑器中输入变量时,系统会将它当作变量看待。激活此变量时,会显示变量的具体值。
例如在对话框中的“%SYSTEMROOT%”是一个变量名,激活它之后,会返回到Windows XP所在的目录。
http://www.pcdog.com/book/html/20041025/25102004325_1.htm
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023