中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 16:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]很奇怪的REG ADD命令问题 查看 874 回复 2
楼 主 [讨论]很奇怪的REG ADD命令问题 发表于 2007-03-15 03:15 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
发现一个很奇怪的REG ADD命令的BUG,大家测试下:
我想在注册表的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
写入"Recent"="D:\\USERDATA\\Temp\\Recent\\"但出现如下问题:

REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V "Recent" /T "REG_SZ" /D "D:\USERDATA\Temp\Recent\" /F

查注册表得到的结果是D:\USERDATA\Temp\Recent" /F,说明/F参数无效,当作/D参数的内容了,现在把/F参数提前.

REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /F /V "Recent" /T "REG_SZ" /D "D:\USERDATA\Temp\Recent\"

查注册表得到的结果是:D:\USERDATA\Temp\Recent",奇怪,怎么多出了一个双引号".
经过分析发现:REG ADD 命令如果参数内容的最后一个字符是\的话将出现问题:无法识别放到最后的/F参数,虽然可以把/F参数提前,但是又引起了把\看成是/D参数结束的标志的错误,即把\去掉并把引号"作为/D参数内容。

不知道大家注意这个问题没有?没有方法可以完美的解决这个问题?虽然大多数路径可以把最后一个\去掉,但有些特殊软件,必须保留最后一个\才行.
2 发表于 2007-03-15 07:12 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
值中没有空格时,可以不用引号

有空格时,\可以改用\\
3 发表于 2007-03-15 12:28 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
Originally posted by qzwqzw at 2007-3-15 07:12:
值中没有空格时,可以不用引号

有空格时,\可以改用\\



谢谢回复,在你发贴之前,我已经找到了这个方法,因为很忙,所以,没有时间上来。谢谢。
论坛跳转: