中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [分享]发现reg import的一处bug 上一主题 | 下一主题
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『楼 主』:  [分享]发现reg import的一处bug

日前测试一个简单的.reg文件的导入
结果发现reg import开关的一个bug

当.reg文件中含有中文注释时
reg import会导入不完整
而且无任何错误提示

随着中文注释的增多
导入所缺失的表项就越多

下面是一个测试范例
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoStartMenuSubFolders"=dword:00000001
;从「开始」菜单删除用户文件夹

"NoWindowsUpdate"=dword:00000001
;删除到“Windows Update”的访问和链接

"NoSMMyDocs"=dword:00000001
;从「开始」菜单中删除“我的文档”图标

"NoRecentDocsMenu"=dword:00000001
;从「开始」菜单上删除“文档”菜单

"NoNetworkConnections"=dword:00000001
;从「开始」菜单删除“网络连接

"NoFavoritesMenu"=dword:00000001
;从「开始」菜单中删除“收藏夹”菜单

"NoFind"=dword:00000001
;从「开始」菜单中删除“搜索”菜单

"NoSMHelp"=dword:00000001
;从「开始」菜单删除“帮助”命令

"NoRun"=dword:00000001
;从「开始」菜单中删除“运行”菜单

"NoSMMyPictures"=dword:00000001
;从「开始」菜单中删除“图片收藏”图标

"NoStartMenuMyMusic"=dword:00000001
;从「开始」菜单中删除“我的音乐”图标

"NoStartMenuNetworkPlaces"=dword:00000001
;从「开始」菜单中删除“网上邻居”图标

"NoNetHood"=dword:00000001
;隐藏桌面上“网上邻居”图标

"NoPropertiesMyDocuments"=dword:00000001
;从“我的文档”上下文菜单中删除“属性”

"NoPropertiesMyComputer"=dword:00000001
;从“我的电脑”上下文菜单中删除“属性”

"DisablePersonalDirChange"=dword:00000001
;禁止用户更改“我的文档”路径

"NoShellSearchButton"=dword:00000001
;从 Windows 资源管理器上删除搜索按钮

"NoViewOnDrive"=dword:03FFFFFF
;隐藏“我的电脑”中的这些指定的驱动器

"NoDrives"=dword:03FFFFFF
;防止从“我的电脑”访问驱动器

"NoSharedDocuments"=dword:00000001
;从“我的电脑”删除共享文档

"DisallowRun"=dword:00000001
;不要运行指定的 Windows 应用程序

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
"1"="setup.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Network]
"NoEntireNetwork"=dword:00000001
;“网上邻居”中不含“整个网络”

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000001
;从桌面删除“回收站”图标

"{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000001
;删除桌面上的“我的电脑”图标

"{450D8FBA-AD25-11D0-98A8-0800361B1103}"=dword:00000001
;删除桌面上的“我的文档”图标


2008-6-25 17:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 2 楼』:  

可以改用
regedit/s *.reg



┌───────┐
├→学习→实践→┤
└───────┘
2008-6-25 19:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

直接复制的这段脚本,reg import regfilename 之后没有发现有注册表项的丢失啊。

OS : Windows Server 2003 Enterprise Edition sp2

2008-6-25 19:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 4 楼』:  

忘了提测试环境:WinXP SP2
03的reg.exe与XP明显有别

改用regedit /s也是后来的折中办法
当然也可以将注释改成英文的或者拼音

另外记起XP的reg query也有个关于中文的bug来着
谁还记着?

2008-6-25 20:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





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

记得是会和谐掉最后几个字符..

2008-6-25 21:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 6 楼』:  

记起来了
似乎是当键值中出现了中文或其它双字节字符时
query的结果会被截断
丢失的字节数约等于出现的双字节字符数

当然
03里已经没有这个问题了

2008-6-25 21:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  

据说WinXP SP3的reg没有这个bug



2008-6-25 22:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 8 楼』:  

那将SP3中的reg复制过来能用吗?



┌───────┐
├→学习→实践→┤
└───────┘
2008-6-25 23:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by qzwqzw at 2008-6-25 09:35 PM:
记起来了
似乎是当键值中出现了中文或其它双字节字符时
query的结果会被截断
丢失的字节数约等于出现的双字节字符数

当然
03里已经没有这个问题了

我的测试结果没有发现问题

WinXP SP2 英文版

  Quote:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Test>reg query HKEY_LOCAL_MACHINE\SOFTWARE /v 哈哈

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE
    哈哈        REG_SZ  我们 测试

WinXP SP3 中文版

  Quote:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\test>reg query HKEY_LOCAL_MACHINE\SOFTWARE /v 哈哈

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE
    哈哈        REG_SZ  我们 测试

我的测试用例有问题吗?



2008-6-26 10:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 10 楼』:  

为什么偏偏漏掉了最常用的XP SP2 中文版?

2008-6-26 14:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  

我没有WinXP SP2 中文版环境
公司的电脑全是英文版的
WinXP SP3 中文版还是我在虚拟机上装的
有时间再装个WinXP SP2 中文版试试
呵呵



2008-6-26 14:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: