中国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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: