中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 14:15
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]取“我的文档”中出现的问题
可打印版本  736 / 3
第1楼 9zhmke 发表于 2008-05-14 15:11
中级用户 发帖 99 积分 355
[已解决]取“我的文档”中出现的问题
自制一优化批处理,经调试没有问题后应用,在应用中发现一个问题,使用以下语句能显示出完整“我的文档”路径:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal
但是使用这引语句重定向后,比如用“|”“>”后却不一定能正确工作。例如我的文档位置是在“d:\我的文档”
  在有些系统下能取出正确位置,在有些系统下却只有“d:\我的”。
使用>后得到以下信息:

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Personal REG_SZ D:\我的

为什么在有些系统下正确而有些系统下不正确?是字符限制引起的吗?我使用了以下命令来测试:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
显示仍然一切正常,但加上>cc.txt后得到以下内容:

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
AppData REG_EXPAND_SZ %USERPROFILE%\Application Data
Desktop REG_EXPAND_SZ %USERPROFILE%\桌
Favorites REG_SZ D:\我的文档\系统
NetHood REG_EXPAND_SZ %USERPROFILE%\NetHood
Personal REG_SZ D:\我的
PrintHood REG_EXPAND_SZ %USERPROFILE%\PrintHood
Programs REG_EXPAND_SZ %USERPROFILE%\「开始」?
SendTo REG_EXPAND_SZ %USERPROFILE%\SendTo
Start Menu REG_SZ D:\我的文档\系统?
Startup REG_EXPAND_SZ %USERPROFILE%\「开始」菜单
Templates REG_EXPAND_SZ %USERPROFILE%\Templates
My Pictures REG_SZ D:\我的文档\
Local Settings REG_EXPAND_SZ %USERPROFILE%\Local Settings
Local AppData REG_EXPAND_SZ %USERPROFILE%\Local Settings\Application Data
Cache REG_EXPAND_SZ %USERPROFILE%\Local Settings\Temporary Internet Files
History REG_EXPAND_SZ %USERPROFILE%\Local Settings\History
Administrative Tools REG_SZ C:\Documents and Settings\All Users\「开始」菜单\?
My Music REG_SZ D:\我的
My Video REG_SZ D:\我的
Recent REG_SZ D:\我的文档\系统设置\?
Cookies REG_EXPAND_SZ D:\我的文档\系统?

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\New


从以上内容可以看出,是因为把中文算成了两个字符造成的,所以只输出了一半的内容,该怎么解决呢?
经查看,这次使用的系统是LTM精简的XP,代码页中只有936和437两个选项。估计是这个原因造成的,由于437下不能显示中文,
只能在936下使用,是不是这个原因造成的呢?如果不用其他文件,能否在936下准确地提取到文档位置呢?

[ Last edited by 9zhmke on 2008-5-14 at 09:05 PM ]
第2楼 knoppix7 发表于 2008-05-14 18:57
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
REG.exe的恶心的BUG而已.
可以去2003/vista里面找一个reg过来代替以下.
第3楼 9zhmke 发表于 2008-05-14 20:22
中级用户 发帖 99 积分 355
谢谢,原来可以用2003的来代替。
第4楼 9zhmke 发表于 2008-05-14 21:04
中级用户 发帖 99 积分 355
用2003测试后出错,再替换regapi.dll也不行,使用XPsp3内的reg.exe替换后成功完成功能,没有以上错误。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023