中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]取“我的文档”中出现的问题
作者:
标题: [已解决]取“我的文档”中出现的问题 上一主题 | 下一主题
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『楼 主』:  [已解决]取“我的文档”中出现的问题

自制一优化批处理,经调试没有问题后应用,在应用中发现一个问题,使用以下语句能显示出完整“我的文档”路径: 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 ]


2008-5-14 15:11
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 2 楼』:  

REG.exe的恶心的BUG而已. 可以去2003/vista里面找一个reg过来代替以下.


   此帖被 +4 点积分        点击查看详情   
评分人:【 9zhmke 分数: +4  时间:2008-5-14 21:08


2008-5-14 18:57
查看资料  发短消息  网志   编辑帖子  回复  引用回复
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『第 3 楼』:  

谢谢,原来可以用2003的来代替。


2008-5-14 20:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『第 4 楼』:  

用2003测试后出错,再替换regapi.dll也不行,使用XPsp3内的reg.exe替换后成功完成功能,没有以上错误。


2008-5-14 21:04
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: