Board logo

标题: 转帖《在DOS方式下对注册表进行编程》,作者不详 [打印本页]

作者: ko20010214     时间: 2002-10-21 00:00    标题: 转帖《在DOS方式下对注册表进行编程》,作者不详

在DOS方式下对注册表进行编程   --此贴为转贴

在DOS方式下也能对注册表进行编程?是的。当您的Windows95/98因注册表问题而无法启动到图形界面时,您此时只有在DOS下对注册表进行手术了。因为注册表编辑器Regedit.exe其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行。许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器。
  在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。
 语法:
   Regedit [/L:system] [/R:user] filename1
 Regedit [/L:system] [/R:user] /C filename2
 Regedit [/L:system] [/R:user] /E filename3 [regpath]
  其中:
 /L:system 指定system.dat文件的存放位置。
  /L:user 指定user.dat文件的存放位置。
    filename1 指定引入注册表数据库的文件名。
  /C filename2 指定形成注册表数据库的文件名。
  /E filename3 指定导出注册表文件的文件名。
  regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)
  现举几个例子说明regedit.exe在DOS下的使用方法。
 【例1】 将系统注册表数据库registry导出到reg1.reg文件中。
  regedit /E reg1.reg
  【例2】 reg1.reg形成系统注册表数据库registry(全部)中。
  regedit /C reg1.reg
 【例3】 将reg.dat引入系统注册表数据库中(部分)。
  regedit reg.dat
 【例4】 将CJH开始的关键字导出注册表数据库,并命名为cjh.reg。  
 regedit /E cjh.reg cjh
 【例5】 指定system/dat存放在D:\PWIN中和user.dat存放在E:\PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。
  regedit /L:D:\PWIN /R:E:\PWIN /C reg.dat

 有了以上这些知识,结合在《对注册表进行编程的“捷径”》里讲过的关于导入或导出的注册表文件(*.REG),我们就可以在DOS方式下对注册表进行编程了。

  我们还是以更改“*.txt”文件的默认打开方式——“记事本”为“写字板”为例。首先在MS-DOS提示符下导出“HKEY_CLASSES_ROOT\txtfile”子键这一分支,即执行命令:

  regedit /E txt.reg HKEY_CLASSES_ROOT\txtfile

 然后用DOS下的EDIT编辑器打开txt.reg文件进行编辑:将其中所有的“C:\\WINDOWS\\NOTEPAD.EXE”全部改成“C:\\WINDOWS\\WRITE.EXE”,存盘退出EDIT,再在命令行下执行命令:

  regedit txt.reg

  便大功告成了。
 当然,严格来说,这并不是编程。如果一定要编程实现的话,我们可以将以上过程写成一批处理文件chang.bat:

   @echo off
   path=c:\windows;c:\windows\command;c:\dos
   cls
   echo 正在导出注册表……
  regedit /E txt.reg HKEY_CLASSES_ROOT\txtfile
   echo.
   echo 注册表导出完毕!按任一键开始编辑注册表……
   echo.
   pause
   edit txt.reg
   echo 正在将修改后的注册表导入……
   regedit txt.reg
   echo 恭喜您!在MS-DOS方式下成功修改了注册表!
   pause
   cls
   @echo on

  充分发挥EDIT编辑器的强大功能,我们可以在遵循导出的注册表文件的格式的前提下,对注册表进行随心所欲的修改、删除或者增加任一子键。如果觉得这还不够程序化,您可以发挥DOS环境下各种程序设计语言的优势,加上交互性的界面,将这一过程真正的程序化,应该丝毫不亚于Windows状态下的利用API函数做出来的效果。有兴趣的朋友可以试一试。如果对此还有什么问题,请与我联系(acalpdc@sohu.com)。
作者: laochang409     时间: 2004-6-23 00:00
good
作者: ozhxo     时间: 2004-6-23 00:00
that is wonderful!!!
作者: jzhupo     时间: 2004-7-16 00:00
Registry Viewer 3.89 for Win9x/Me/NT/2K/XP by General Paul Lee
这个软件也可以在dos下操作注册表
作者: 余子枫     时间: 2004-11-18 00:00
没有win2000的吗?2000里能行吗?
作者: defrag     时间: 2004-12-19 00:00


  Quote:
以下是引用余子枫在2004-11-18 16:02:34的发言:

没有win2000的吗?
2000里能行吗?

But not  nt/2k/xp/2k3+
作者: defrag     时间: 2004-12-19 00:00    标题: 回复:(defrag)[quote]以下是引用余子枫在2004-11-1...

[replyview]HAHHAHAHAHAHAHAHAHAH[/replyview]
作者: yzz163     时间: 2005-4-9 00:00
对注册表进行编程的“捷径"再哪
作者: pita     时间: 2005-4-16 00:00
收藏中~!
作者: cdcd     时间: 2005-5-22 00:00
kan yi xia
作者: βeta     时间: 2005-5-23 00:00
谢谢分享,好东西
作者: sansa520     时间: 2007-3-27 00:19
好东西..收藏了..
作者: li2008yujin     时间: 2007-4-7 22:09
有点意思,没玩过
作者: 6622186     时间: 2007-4-23 11:18
2000 xp  恐怕不行吧, 注册表的物理文件与98 不同, 如果指定注册表文件所在位置, 不知行不行?
作者: 6622186     时间: 2007-4-23 11:20
i不过, NT 下没有 system.dat.
作者: wgx1688     时间: 2007-4-24 03:07    标题: DDDDDDDDDDDDDDD

DDDDDDDDDDDDDDDD
作者: aspirer     时间: 2007-4-24 23:05
看上去XP下面用不起来了。
作者: dicky2868     时间: 2007-4-25 11:31
不明.....
作者: netuer     时间: 2007-5-3 09:35
2000 xp不行.输入regedit就会出来图形的界面
作者: lk5258     时间: 2007-9-24 15:10
好东西哦
作者: yqi99     时间: 2007-9-26 16:13
2002-10-21 的帖子也能顶到现在, 汗...
都已经过时了
作者: chishingchan     时间: 2007-9-26 18:16
XP 的注册表命令行工具更强:Reg /?
作者: gideon     时间: 2007-9-26 18:21
i like it.
作者: yqi99     时间: 2007-9-27 11:03


  Quote:
Originally posted by chishingchan at 2007-9-26 06:16 PM:
XP 的注册表命令行工具更强:Reg /?

这个只能在windows下的cmd用.目前应该没有在纯dos下的工具吧
作者: fatbull     时间: 2007-10-8 23:50
好好学习一下。
作者: shanliang8008     时间: 2007-10-9 17:29
这个市XP里那种的DOS 吧
作者: huahua0919     时间: 2007-10-11 09:43
要学的东西好多!
作者: oueidou     时间: 2007-12-10 21:51
果然强大。
不过这个要真的对注册表非常了解了啊。
作者: maclover815     时间: 2007-12-11 22:31    标题: good

good




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5