无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 69816|回复: 141
打印 上一主题 下一主题

【原创】reg2cmd

    [复制链接]
跳转到指定楼层
1#
发表于 2007-12-3 10:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天发现dos 论坛有个reg2bat 的小工具,不过功能差得很多,于是下午用perl重写了一个,用perlapp 编译。

12.05 fix  regedit4 的支持
12.04 更新,修正了没有考虑长文件名的bug
增加了自动安装到右键菜单的功能(直接运行,会询问是否安装,目前无卸载)
增加了对 hex(3) hex(6) hex(8) hex(9) hex(a) hex(b) 类型的处理
取消了对批处理文件中元字符的特殊处理
增加了删除键值的功能

12.03 更新,可以处理键值中的=,修复了 增加功能时候引入的低级bug
更新了一个处理结尾的双斜杠的bug,

可以从这里下载
http://www.fs2you.com/en/files/2 ... -80f2-0014221f4662/

[haiou327上传]
reg2cmd.part1.rar (500 KB, 下载次数: 1841)
reg2cmd.part2.rar (500 KB, 下载次数: 1727)
reg2cmd.part3.rar (429.11 KB, 下载次数: 1761)


使用很简单,
reg2cmd.exe   reg文件名字  [批处理文件名字]

下面是北京电子地图的reg 文件
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser]
  3. "RunPath"="D:\\北京电子地图2007版\\Browser.exe BeiJing2007"
  4. "Path"="D:\\北京电子地图2007版"
  5. "Assistant"="D:\\北京电子地图2007版\\Assistant\"
  6. "Http"="Http://www.sinomaps.com/EMap/BeiJing2007/"
  7. "UserInfo"="Http://www.sinomaps.com/EMap/BeiJing2007/UserInfo/"
  8. "Print"=dword:00000001
  9. [HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Html]
  10. "Path"="D:\\北京电子地图2007版\\Html\"

  11. [HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Map]
  12. "Path"="D:\\北京电子地图2007版\\Map\"

  13. [HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Server]
  14. "Web"="Http://www.sinomaps.com/EMap/BeiJing2007/"
复制代码
得到的cmd文件
  1. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "RunPath" /t REG_SZ /d "D:\北京电子地图2007版\Browser.exe BeiJing2007"
  2. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Path" /t REG_SZ /d "D:\北京电子地图2007版"
  3. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Assistant" /t REG_SZ /d "D:\北京电子地图2007版\Assistant"
  4. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Http" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/"
  5. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "UserInfo" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/UserInfo/"
  6. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Print" /t REG_DWORD /d 1
  7. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Html" /f /v "Path" /t REG_SZ /d "D:\北京电子地图2007版\Html"
  8. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Map" /f /v "Path" /t REG_SZ /d "D:\北京电子地图2007版\Map"
  9. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Server" /f /v "Web" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/"
复制代码
把D:\北京电子地图2007版 替换为%CD% ,得到下面的批处理,放在 D:\北京电子地图2007版 目录下,便携版的北京电子地图2007版就诞生了
  1. pushd "~dp0"
  2. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "RunPath" /t REG_SZ /d "%CD%\Browser.exe BeiJing2007"
  3. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Path" /t REG_SZ /d "%CD%"
  4. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Assistant" /t REG_SZ /d "%CD%\Assistant"
  5. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Http" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/"
  6. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "UserInfo" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/UserInfo/"
  7. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser" /f /v "Print" /t REG_DWORD /d 1
  8. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Html" /f /v "Path" /t REG_SZ /d "%CD%\Html"
  9. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Map" /f /v "Path" /t REG_SZ /d "%CD%\Map"
  10. reg add "HKLM\SOFTWARE\GisWay\BeiJing2007\Browser\Server" /f /v "Web" /t REG_SZ /d "Http://www.sinomaps.com/EMap/BeiJing2007/"
  11. popd
复制代码

[ 本帖最后由 haiou327 于 2009-9-28 02:14 编辑 ]

点评

辛苦了  发表于 2024-7-26 08:48
12.07 更新,去掉了外部模块,极大的减小体积 (533KB)  发表于 2021-8-16 12:08
新版 http://cndos.fam.cx/forum/viewthread.php?tid=35913  发表于 2021-8-15 19:38
100楼有新版附件  发表于 2021-8-15 19:02

评分

参与人数 7无忧币 +43 收起 理由
yyz2191958 + 2 赞一个!
879792799 + 5 很给力!
某些人 + 5 赞一个!
anythingsky + 5 赞一个!
2010hook + 5 水平高!
whatdoingsky + 1 很给力!
yueming9712 + 20 原创内容

查看全部评分

推荐
发表于 2007-12-3 11:51:07 | 只看该作者
不错,谢谢分享 

点评

12.07 更新,去掉了外部模块,极大的减小体积 (533KB)  发表于 2021-8-16 12:07
新版 http://cndos.fam.cx/forum/viewthread.php?tid=35913  发表于 2021-8-15 19:38
回复

使用道具 举报

推荐
发表于 2007-12-3 10:52:41 | 只看该作者
这样编辑导入注册表就方便了,以前只用INF文件解决路径问题
回复

使用道具 举报

4#
发表于 2007-12-3 11:54:46 | 只看该作者
嘿嘿,这个真是好东东啊,LZ真厉害。。。。o(∩_∩)o
回复

使用道具 举报

5#
发表于 2007-12-3 11:55:36 | 只看该作者
哦!高手就是高手!出手不凡。
回复

使用道具 举报

6#
发表于 2007-12-3 11:58:36 | 只看该作者
错误: 命令行参数无效
我转换的结果,怎么都是这个提示?
回复

使用道具 举报

7#
发表于 2007-12-3 12:13:39 | 只看该作者
LZ的是转换成reg命令。。。o(∩_∩)o
回复

使用道具 举报

8#
 楼主| 发表于 2007-12-3 14:05:11 | 只看该作者
原帖由 阿非 于 2007-12-3 11:58 AM 发表
错误: 命令行参数无效
我转换的结果,怎么都是这个提示?


抱歉,修改代码时候引入了一个低级bug ,应该
ok了
回复

使用道具 举报

9#
发表于 2007-12-3 14:39:53 | 只看该作者
现在成功了,多谢了
回复

使用道具 举报

10#
发表于 2007-12-3 20:32:27 | 只看该作者
对其他type的直接支持有问题


  1. Windows Registry Editor Version 5.00
  2. [HKEY_CURRENT_USER\Software\EasyBoot Systems\EasyBoot\3.0]
  3. "New Value #1"=hex:ea,ee,aa,ea,ea,ee,a0
  4. "New Value #2"=dword:00000000
  5. "New Value #3"=hex(7):31,00,31,00,31,00,31,00,31,00,31,00,31,00,5c,00,22,00,7a,\
  6.   00,64,00,67,00,64,00,66,00,68,00,72,00,27,00,22,00,00,00,22,00,3a,00,67,00,\
  7.   64,00,7a,00,68,00,74,00,68,00,22,00,00,00,00,00
  8. "New Value #4"=hex(2):45,00,3a,00,5c,00,49,51,71,9a,e5,5d,77,51,5c,00,45,00,61,\
  9.   00,73,00,79,00,42,00,6f,00,6f,00,74,00,5c,00,69,00,73,00,6f,00,00,00
  10. "New Value #5"=hex(5):00,00,00,00
  11. "New Value #6"=hex(b):00,00,00,00,00,00,00,00
  12. "New Value #7"=hex(6):11,11,11,10
  13. "New Value #8"=hex(8):23,dd,50
  14. "New Value #9"=hex(9):ad,ad
  15. "New Value #10"=hex(a):35,34,5f,f0
复制代码




你的程序得到的结果:
  1. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #1" /t REG_BINARY /d eaeeaaeaeaeea0
  2. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #2" /t REG_DWORD /d 0
  3. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #3" /t REG_MULTI_SZ /d "1111111"zdgdfhr'"\0":gdzhth""
  4. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #4" /t REG_EXPAND_SZ /d "E:\光驱工具\EasyBoot\iso"
  5. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #5" /t REG_SZ /d hex(5):00,00,00,00
  6. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #6" /t REG_SZ /d hex(b):00,00,00,00,00,00,00,00
  7. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #7" /t REG_SZ /d hex(6):11,11,11,10
  8. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #8" /t REG_SZ /d hex(8):23,dd,50
  9. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #9" /t REG_SZ /d hex(9):ad,ad
  10. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #10" /t REG_SZ /d hex(a):35,34,5f,f0
复制代码


正确的表达式为:
  1. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #1" /t REG_BINARY /d eaeeaaeaeaeea0
  2. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #2" /t REG_DWORD /d 00000000
  3. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #3" /t REG_MULTI_SZ /d "1111111\\"zdgdfhr'"\0":gdzhth""
  4. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #4" /t REG_EXPAND_SZ /d "E:\光驱工具\EasyBoot\iso"
  5. reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #5" /t REG_DWORD_BIG_ENDIAN /d 00000000
复制代码

其他几种类型 reg命令不支持的说

另:
reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #2" /t REG_DWORD /d 0
最好改成标准写法
reg add "HKCU\Software\EasyBoot Systems\EasyBoot\3.0" /f /v "New Value #2" /t REG_DWORD /d 00000000
回复

使用道具 举报

11#
 楼主| 发表于 2007-12-3 23:34:50 | 只看该作者
to  沙漠之子 :
     感谢您的测试结果和宝贵意见 。
    1、下面这几种reg 的数据类型 hex(5):hex(b):hex(6):hex(8):hex(9): hex(a)  我都没有见过,所以没有支持,而且实际上极少用到这些类型吧,我猜可能vista或者64位xp 中引入的。我目前无法找到这些类型的资料,等我了解这些类型后,可能加上。
    2、 reg_dword 的正确写法就是0 ,是10进制的写法,而不是16进制的写法。

[ 本帖最后由 lyh728 于 2007-12-3 11:40 PM 编辑 ]
回复

使用道具 举报

12#
发表于 2007-12-4 08:49:50 | 只看该作者
在CCF看到了,谢谢楼主。注册了临时广场,还进不了主论坛,有点遗憾。
回复

使用道具 举报

13#
发表于 2007-12-4 10:10:30 | 只看该作者
这个工具做得太大了,近2M啊。
其实可以简单一些的:
保留 REG 格式的文件,将REG文件的相关字符串替换即可,这样产生新的REG文件同样可以用regedit或reg导入,转换的工作量更小,导入也更有效.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser]
"RunPath"="D:\\北京电子地图2007版\\Browser.exe BeiJing2007"
"Path"="D:\\北京电子地图2007版"
"Assistant"="D:\\北京电子地图2007版\\Assistant\\"
"Http"="Http://www.sinomaps.com/EMap/BeiJing2007/"
"UserInfo"="Http://www.sinomaps.com/EMap/BeiJing2007/UserInfo/"
"Print"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Html]
"Path"="D:\\北京电子地图2007版\\Html\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Map]
"Path"="D:\\北京电子地图2007版\\Map\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\GisWay\BeiJing2007\Browser\Server]
"Web"="Http://www.sinomaps.com/EMap/BeiJing2007/"


替换上面的 "D:\\北京电子地图2007版" ,保留同样格式的 REG 文件,数据类型无需转换,得到一个新的 REG 文件.
回复

使用道具 举报

14#
 楼主| 发表于 2007-12-4 16:04:31 | 只看该作者
to lxl1638
2m 是因为 perl 编译成exe嵌进去了很多东西,所以尺寸很大

其余不明白,比如这里 D:\\北京电子地图2007版  是 \\ 怎么替换呢?比较麻烦
回复

使用道具 举报

15#
 楼主| 发表于 2007-12-4 16:16:01 | 只看该作者
to  沙漠之子 :
     感谢您的测试结果和宝贵意见 。
   
下面这几种reg 的数据类型 hex(5):hex(b):hex(6):hex(8):hex(9): hex(a)  加上了。
回复

使用道具 举报

16#
发表于 2007-12-4 16:29:44 | 只看该作者
这才是大家学习的榜样。
回复

使用道具 举报

17#
发表于 2007-12-4 19:10:09 | 只看该作者
原来一直用手动改成cmd,现在方便了,多谢楼主
回复

使用道具 举报

18#
发表于 2007-12-5 19:11:26 | 只看该作者
好东西!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

19#
发表于 2007-12-5 19:14:40 | 只看该作者
做个支持右键扩展的。比较好
回复

使用道具 举报

20#
发表于 2007-12-5 20:52:02 | 只看该作者
原帖由 lyh728 于 2007-12-4 04:04 PM 发表
to lxl1638
2m 是因为 perl 编译成exe嵌进去了很多东西,所以尺寸很大

其余不明白,比如这里 D:\\北京电子地图2007版  是 \\ 怎么替换呢?比较麻烦



若 "D:\\北京电子地图2007版" 要替换成 "X:\\PROGRAMS\\北京电子地图2007版"
在 VC++ 里是:
TEXT("X:\\\\PROGRAMS\\\\北京电子地图2007版")
替换
TEXT("D:\\\\北京电子地图2007版")

Delphi 里更易理解,就是:
'X:\\PROGRAMS\\北京电子地图2007版'
替换
'D:\\北京电子地图2007版'
回复

使用道具 举报

21#
发表于 2007-12-5 22:32:43 | 只看该作者
我现在没完全懂,慢慢学习吧。
回复

使用道具 举报

22#
发表于 2007-12-6 00:12:16 | 只看该作者
一上来就看到这个好东东,嘿嘿,不知楼主有没有考虑特殊字符?期盼回答
回复

使用道具 举报

23#
 楼主| 发表于 2007-12-6 07:14:13 | 只看该作者
原帖由 33ch 于 2007-12-6 12:12 AM 发表
一上来就看到这个好东东,嘿嘿,不知楼主有没有考虑特殊字符?期盼回答


不知道指的是什么字符?  您可以帮我测试一下
回复

使用道具 举报

24#
发表于 2007-12-6 09:10:15 | 只看该作者
增加了右键,这样更方便了。多谢!
回复

使用道具 举报

25#
发表于 2007-12-6 10:42:16 | 只看该作者
不错,谢谢分享!!!
回复

使用道具 举报

26#
发表于 2007-12-7 13:24:47 | 只看该作者
好东东.
谢谢!!
回复

使用道具 举报

27#
发表于 2007-12-9 13:36:08 | 只看该作者
支持一下.再不顶.这贴就要跑到灌水区去了...呵呵......
回复

使用道具 举报

28#
发表于 2007-12-17 14:03:50 | 只看该作者
顶 顶 顶  顶 顶 顶

评分

参与人数 1无忧币 -10 收起 理由
阿非 -10 恶意灌水

查看全部评分

回复

使用道具 举报

29#
发表于 2007-12-17 21:20:56 | 只看该作者
这个有用!






                                .
回复

使用道具 举报

30#
发表于 2007-12-18 20:08:48 | 只看该作者
以后方便了啊,赞美。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 03:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表