中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-31 21:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么写一个自动完成系统环境变量添加的脚本 查看 8,731 回复 19
16 发表于 2006-12-27 22:56 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
经过多次实验表明:使用AUTOEXEC.BAT的确能添加变量,添加的变量不会写入注册表中的相关项,同时也不会出现在"我的电脑"中的用户和系统变量列表中,但是这些变量是可以发挥作用的,我使用AUTOEXEC.BAT添加LANG=CHS后proe可以从英文版本变成中文版,把LANG=EN可变成英文了,哈哈,真有意思,我添加了SET PATH=E:\ACAD2000;E:\ACAD2000\Autodesk Shared;变量后我的绿色AUTOCAD就再也不出现找不到路径的提示了,说明autoexec.bat中的变量的确是个好东西。
17 发表于 2006-12-28 01:23 ·  中国 北京 光环新网
新手上路
积分 12
发帖 5
注册 2006-12-27 08:04
19年会员
UID 74686
性别 男
状态 离线
非常感谢hunrybecky , 我这也试验成功了。
18 发表于 2006-12-28 21:47 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
注册表中的PATH是sz还是expand_sz,具体取决于环境变量的取值

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

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

http://www.cn-dos.net/forum/viewthread.php?tid=17155&fpage=1&highlight=
19 发表于 2006-12-28 22:38 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
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 发表于 2006-12-28 22:42 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
刚才又找到一些资料,这里是这样解释的,比较合理:
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
论坛跳转: