Board logo

标题: 求助: 如何将注册表文件转成批处理文件 [打印本页]

作者: eech     时间: 2006-11-9 08:25    标题: 求助: 如何将注册表文件转成批处理文件

就是将REG文件转CMD.或BAT文件.在各大论坛求了好久,经高人指点求到这了:(
作者: vkill     时间: 2006-11-9 09:03
你要先随便导出一段注册表文件,在看看 reg /? 这个的帮助

用for 来处理文件,自己试着弄下,不清楚的地方再来问吧!你这样直接要代码,怕不是最好的解决办法吧!
作者: fastslz     时间: 2006-11-9 09:43
另有~~~~~~~~~~
@echo off
echo REGEDIT4>tmp.reg
echo.>>tmp.reg
echo [HKEY_CLASSES_ROOT\Directory\shell\cmd]>>tmp.reg
echo @="CMD 命令提示符">>tmp.reg
echo [HKEY_CLASSES_ROOT\Directory\shell\cmd\command]>>tmp.reg
echo @="cmd.exe /k \"cd %L\"">>tmp.reg
echo [HKEY_CLASSES_ROOT\Drive\shell\cmd]>>tmp.reg
echo @="CMD 命令提示符"
echo [HKEY_CLASSES_ROOT\Drive\shell\cmd\command]>>tmp.reg
echo @="cmd.exe /k \"cd %L\"">>tmp.reg
echo.>>tmp.reg
regedit /s tmp.reg
del tmp.reg

作者: eech     时间: 2006-11-9 10:30
谢谢二位朋友的热心肠
作者: electronixtar     时间: 2006-11-9 10:42
建议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理?
作者: eech     时间: 2006-11-9 10:55
5楼老大.你说出了我等新手的心声.代表新手们支持你
作者: eech     时间: 2006-11-9 10:58    标题: 建议:各位大大们.做一个reg2bat.bat的批处理如何

议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理

请需要的朋友跟帖
作者: lxmxn     时间: 2006-11-9 21:03

  恩,完全有这个必要了……

作者: ccwan     时间: 2006-11-9 21:11
很好的主意!我想要。
作者: 不得不爱     时间: 2006-11-10 00:09
我来个将sz.reg转换成reg.bat的批处理
@echo off
for /f "tokens=*" %%a in ('type sz.reg') do echo echo %%a^>^>tmp.reg>>reg.bat
echo echo regedit /s tmp.reg>>reg.bat

作者: electronixtar     时间: 2006-11-10 00:18
特殊字符处理了么?我的想法是,转换成3个版本的
1. reg.exe 版本的
2. more 生成
3. echo 生成

btw,建议版主分隔主题,谢谢!
作者: xdg3669     时间: 2006-11-10 00:18
学习学习!
作者: ccwan     时间: 2006-11-11 06:06
期待进一步完善!
作者: vkill     时间: 2006-11-11 07:49
做reg.exe这个版本的好,呵呵
作者: honhaizh     时间: 2006-11-16 20:40


  Quote:
Originally posted by fastslz at 2006-11-9 09:43:
另有~~~~~~~~~~

[code]@echo off
echo REGEDIT4>tmp.reg
echo.>>tmp.reg
echo [HKEY_CLASSES_ROOT\Directory\shell\cmd]>>tmp.reg
echo @="CMD 命令提示符">>tmp.r ...

高!
作者: hxuan999     时间: 2006-11-23 00:58
期待中.....
作者: a9319751     时间: 2006-11-28 05:54


  Quote:
Originally posted by fastslz at 2006-11-9 09:43:
另有~~~~~~~~~~

[code]@echo off
echo REGEDIT4>tmp.reg
echo.>>tmp.reg
echo [HKEY_CLASSES_ROOT\Directory\shell\cmd]>>tmp.reg
echo @="CMD 命令提示符">>tmp.r ...

没明白这个是什么意思
作者: ccwan     时间: 2006-11-28 06:14


  Quote:
Originally posted by a9319751 at 2006-11-28 05:54:



没明白这个是什么意思

这是用批处理生成一个注册表文件"tmp.reg",将它导入到注册表,最后删除这个注册表文件。
作者: q8q8feng     时间: 2006-11-29 04:09


  Quote:
Originally posted by eech at 2006-11-9 10:58 AM:
议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理

请需要的朋友跟帖

支持一下
作者: edward     时间: 2006-12-10 07:56
顶了
作者: fastrun     时间: 2006-12-14 02:24


  Quote:
Originally posted by electronixtar at 2006-11-8 09:42 PM:
建议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理?

支持一个
作者: 无奈何     时间: 2006-12-14 03:55


  Quote:
Originally posted by electronixtar at 2006-11-9 10:42:
建议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理?

以前曾想过用 gawk 写一个,发现太复杂了,啃了一段时间也没有进展。大家可以多一些这方面的研究,能操作注册表可干的事太多了。
作者: HUNRYBECKY     时间: 2006-12-14 05:10


  Quote:
Originally posted by electronixtar at 2006-11-9 10:42:
建议:我们做一个reg2bat.bat的批处理如何?自动把.reg转换成reg命令的批处理?

这个建议非常好,也非常实用。不过难度系数是多大。
作者: HUNRYBECKY     时间: 2006-12-14 05:19
写注册表有很多种方式,我一般采用echo>>和REG命令的方式。
下面贴上我编写ACCESS2003绿色版本时对注册表操作的一段代码。

REM 设置注册表1.设置应用程序路径以便在命令行中执行该程序,这里使用导入生成并导入注册表的方法
ECHO REGEDIT4 >>APPPaths.REG
ECHO. >>APPPaths.REG
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE] >>APPPaths.REG
ECHO @="%CPATH%\\MSACCESS.EXE" >>APPPaths.REG
ECHO "Path"="%CPATH%\\" >>APPPaths.REG
ECHO "useURL"="1" >>APPPaths.REG
regedit /s APPPaths.REG >NULL
del APPPaths.REG /q/f >NULL
cls

REM 设置注册表2.设置应用程序的产品注册授权信息,否则软件无法使用,这里使用REG方法
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\73A4C9C1-D68D-11d0-98BF-00A0C90DC8D9\11.0\Retail" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\73A4C9C1-D68D-11d0-98BF-00A0C90DC8D9\11.0\Retail" /ve  /t REG_SZ /d sbbcdcprktpjtapmmfdacmupasbhscddncgp /f
cls

REM 设置注册表3.设置VBA路径,否则无法使用VBE编辑程序进行二次开发,这里仍然使用REG方法,注意使用变量使用""括起来,帮助说的是使用%%,这是不正确的
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA" /v "Vbe6DllPath" /t REG_SZ /d "%CommonProgramFiles%"\MICROS~1\VBA\VBA6\VBE6.DLL /f
cls

REM 设置注册表4.设置软件注册表信息,一般为软件名称下的注册表项
binsub office.REG E:\\OFFICE2003\\OFFICE11\\ %CPATH%\\ >NULL
binsub office.REG C:\\ %SystemDrive%\\ >NULL
regedit /s office.REG >NULL
del office.REG /q/f >NULL
CHCP 936 >NULL
cls

REM 设置注册表5.设置文件关联,这里也可以使用FOR来实现.注意的是1.8版的BINSUB最多只支持127字符,现在2.1版已经解决了这个问题.
binsub link.reg E:\\OFFICE2003\\OFFICE11\\ %CPATH%\\ >NULL
binsub link.reg C:\\ %SystemDrive%\\ >NULL
regedit /s link.reg >NULL
del link.reg /q/f >NULL
CHCP 936 >NULL
cls

REM 设置注册表6.创建语言设置加载项Language.mda,设置后也可以通过语言设置加载项来设置ACCESS界面语言
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /v "Expression" /t REG_SZ /d "=LangSet()" /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /v "Library" /t REG_SZ /d "Language.mda" /f

REM 设置注册表7.增加自带的控件和增强型控件以便用于高级开发.
REM 去掉了OWC11.DLL MSRTEDIT.DLL,REFEDIT.DLL等控件,需要时可以再添加
REM 先注册SNAPVIEW.OCX快照文件,该文件已经先在profile.exe中解压了.
regsvr32  /s "%CommonProgramFiles%\Micros~1\Snapsh~1\SNAPVIEW.OCX"
REM 注册自带控件和增强控件
plugin.exe
REM 条形码控件
copy plugin\MSBCODE9.OCX ..\ /Y >NULL
regsvr32  /s ..\MSBCODE9.OCX
REM 日历控件MSCAL.OCX,其中Mscomct2.ocx是更好用的日历控件
copy plugin\MSCAL.OCX ..\ /Y >NULL
regsvr32  /s ..\MSCAL.OCX
copy plugin\Mscomct2.ocx ..\ /Y >NULL
regsvr32  /s ..\Mscomct2.ocx
REM form2.0控件
copy plugin\FM20.DLL %WINDIR%\SYSTEM32\ /y  >NULL
regsvr32  /s %WINDIR%\SYSTEM32\FM20.DLL
REM VSFLEX3.0控件
copy plugin\VSFLEX3.OCX %WINDIR%\SYSTEM32\ /y  >NULL
regsvr32  /s %WINDIR%\SYSTEM32\VSFLEX3.OCX
REM 公用组件最新控件6.0:mscomctl.ocx(5.0的为comctl32.ocx,这里不用),需要授权注册
copy plugin\mscomctl.ocx %WINDIR%\SYSTEM32\ /y >NULL
regsvr32  /s %WINDIR%\SYSTEM32\mscomctl.ocx
REM 公用对话框最新控件6.0:COMDLG32.OCX,需要授权注册
copy plugin\COMDLG32.OCX %WINDIR%\SYSTEM32\ /y >NULL
REM 串口编程最新控件6.0:Mscomm32.ocx,需要授权注册
copy plugin\Mscomm32.ocx %WINDIR%\SYSTEM32\ /y >NULL
regsvr32  /s %WINDIR%\SYSTEM32\Mscomm32.ocx
REM 文本编辑最新控件6.0:RICHTX32.OCX,需要授权注册
copy plugin\RICHTX32.OCX %WINDIR%\SYSTEM32\ /y >NULL
regsvr32  /s %WINDIR%\SYSTEM32\RICHTX32.OCX
REM 表格最新控件6.0:MSFLXGRD.OCX,需要授权注册
copy plugin\MSFLXGRD.OCX %WINDIR%\SYSTEM32\ /y >NULL
regsvr32  /s %WINDIR%\SYSTEM32\MSFLXGRD.OCX
REM 网络最新控件6.0:Mswinsck.ocx,需要授权注册 >NULL
copy plugin\Mswinsck.ocx %WINDIR%\SYSTEM32\ /y
regsvr32  /s %WINDIR%\SYSTEM32\Mswinsck.ocx
regedit /s PLUGINS.REG >NULL
del PLUGINS.REG /q/f >NULL
RD plugin /Q/S >NULL
CLS

REM 创建程序运行的快捷方式:桌面,快速启动栏,程序菜单,这里使用LEELINK工具,在创建之前,需要更改CPATH环境变量(可使用COPY法)
CALL CPTEMP.bat
SLINK /F:%CPATH%\MSACCESS.EXE /C:Microsoft Office Access 2003 /s:y /d:y
del slink.exe /q/f >NULL
rem ================================================================
rem cd ..
rem copy Micros~1.lnk "%ALLUSERSPROFILE%\桌面\ /Y"
rem copy Micros~1.lnk %ALLUSERSPROFILE%\桌面\「开始」菜单\ /Y
rem copy Micros~1.lnk %ALLUSERSPROFILE%\桌面\「开始」菜单\程序 /Y
rem cd STARTUP\
rem ================================================================
cls
作者: kich     时间: 2006-12-16 00:14
强啊强啊,纯粹一个盲人在看帖!!
作者: swlove     时间: 2006-12-16 07:01


  Quote:
Originally posted by kich at 2006-12-16 00:15:
强啊强啊,纯粹一个盲人在看帖!!

同样的感受...
作者: qpmgljf     时间: 2007-1-7 05:51
强人。。。不过看得我眼花瞭乱的。。。。。26楼的能不能直接编出来一个转换程序来啊。。。。。
作者: bingxiao20     时间: 2007-4-30 02:40


  Quote:
Originally posted by fastslz at 2006-11-8 08:43 PM:
另有~~~~~~~~~~

[code]@echo off
echo REGEDIT4>tmp.reg
echo.>>tmp.reg
echo [HKEY_CLASSES_ROOT\Directory\shell\cmd]>>tmp.reg
echo @="CMD 命令提示符">>tmp.r ...

这段批处理怎么用的。。。还是没有看明白。。。。
作者: hdzc     时间: 2007-10-27 20:55
期待右键reg2bat
作者: lzys     时间: 2007-10-28 01:55
5楼朋友的建议我强烈支持...呵呵...省去了很多麻烦...哈哈
作者: lieeq2000     时间: 2007-10-28 02:21
收了。哈
作者: chujiafu     时间: 2007-10-28 08:37
这个帖子有前途。