无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 61151|回复: 135

【原创】reg2cmd

    [复制链接]
发表于 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, 下载次数: 1791)

点评

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

评分

参与人数 6无忧币 +41 收起 理由
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文件解决路径问题
回复

使用道具 举报

发表于 2007-12-3 11:54:46 | 显示全部楼层
嘿嘿,这个真是好东东啊,LZ真厉害。。。。o(∩_∩)o
回复

使用道具 举报

发表于 2007-12-3 11:55:36 | 显示全部楼层
哦!高手就是高手!出手不凡。
回复

使用道具 举报

发表于 2007-12-3 11:58:36 | 显示全部楼层
错误: 命令行参数无效
我转换的结果,怎么都是这个提示?
回复

使用道具 举报

发表于 2007-12-3 12:13:39 | 显示全部楼层
LZ的是转换成reg命令。。。o(∩_∩)o
回复

使用道具 举报

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


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

使用道具 举报

发表于 2007-12-3 14:39:53 | 显示全部楼层
现在成功了,多谢了
回复

使用道具 举报

发表于 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.PNG

你的程序得到的结果:
  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
回复

使用道具 举报

 楼主| 发表于 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 编辑 ]
回复

使用道具 举报

发表于 2007-12-4 08:49:50 | 显示全部楼层
在CCF看到了,谢谢楼主。注册了临时广场,还进不了主论坛,有点遗憾。
回复

使用道具 举报

发表于 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 文件.
回复

使用道具 举报

 楼主| 发表于 2007-12-4 16:04:31 | 显示全部楼层
to lxl1638
2m 是因为 perl 编译成exe嵌进去了很多东西,所以尺寸很大

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

使用道具 举报

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

使用道具 举报

发表于 2007-12-4 16:29:44 | 显示全部楼层
这才是大家学习的榜样。
回复

使用道具 举报

发表于 2007-12-4 19:10:09 | 显示全部楼层
原来一直用手动改成cmd,现在方便了,多谢楼主
回复

使用道具 举报

发表于 2007-12-5 19:11:26 | 显示全部楼层
好东西!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

发表于 2007-12-5 19:14:40 | 显示全部楼层
做个支持右键扩展的。比较好
回复

使用道具 举报

发表于 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版'
回复

使用道具 举报

发表于 2007-12-5 22:32:43 | 显示全部楼层
我现在没完全懂,慢慢学习吧。
回复

使用道具 举报

发表于 2007-12-6 00:12:16 | 显示全部楼层
一上来就看到这个好东东,嘿嘿,不知楼主有没有考虑特殊字符?期盼回答
回复

使用道具 举报

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


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

使用道具 举报

发表于 2007-12-6 09:10:15 | 显示全部楼层
增加了右键,这样更方便了。多谢!
回复

使用道具 举报

发表于 2007-12-6 10:42:16 | 显示全部楼层
不错,谢谢分享!!!
回复

使用道具 举报

发表于 2007-12-7 13:24:47 | 显示全部楼层
好东东.
谢谢!!
回复

使用道具 举报

发表于 2007-12-9 13:36:08 | 显示全部楼层
支持一下.再不顶.这贴就要跑到灌水区去了...呵呵......
回复

使用道具 举报

发表于 2007-12-17 14:03:50 | 显示全部楼层
顶 顶 顶  顶 顶 顶

评分

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

查看全部评分

回复

使用道具 举报

发表于 2007-12-17 21:20:56 | 显示全部楼层
这个有用!






                                .
回复

使用道具 举报

发表于 2007-12-18 20:08:48 | 显示全部楼层
以后方便了啊,赞美。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-30 19:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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