北极鱼以前做绿色软件时基本上都是用批处理来做如导入注册表,注册DLL,复制相关文件等绿化操作。对于要导入的注册表,一般的作法是使用命令 regedit /s 注册表文件.reg ,今天在网上发现个比直接使用命令 regedit /s 注册表文件.reg 更简单一些的方法。可以直接将REG文件转换成CMD/BAT文件。虽然自己现在制作绿色软件已经不再用批处理来导入注册表文件,但是还是收藏起来,也许以后自己还能用的上也说不定,文章来源
     根据.REG文件和.CMD文件的特性,可以合二为一。 .REG文件中;开头代表注释 .CMD文件中;开头并不影响执行。所以可以从这个方面入手。下面的注册表可以在右键菜单中添加一个MAKECAB项。

REGEDIT4

[HKEY_CLASSES_ROOT\*\shell\MakeCab\Command]
@="makecab /D CompressionType=LZX /D CompressionMemory=21 /D Cabinet=ON /D Compress=ON \"%1\""

将上面的注册表存为MCAB.REG使用以下批处理就可以直接在添加

@echo off regedit /s mcab.reg

现在根据注册表和批处理文件 的特性就可以合二为一。由于注册表文件第一行是标识符不可改变。所以就将批处理代码放在第二行。

REGEDIT4
;regedit /s "%~f0"&&goto :eof
[HKEY_CLASSES_ROOT\*\shell\MakeCab\Command]
@="makecab /D CompressionType=LZX /D CompressionMemory=21 /D Cabinet=ON /D Compress=ON \"%1\""

把上面的代码存为MCAB.CMD效果和上面的两个一样。上面的代码还可以用如下形式

REGEDIT4
;cls&@echo off&goto :start
[HKEY_CLASSES_ROOT\*\shell\MakeCab\Command]
@="makecab /D CompressionType=LZX /D CompressionMemory=21 /D Cabinet=ON /D Compress=ON \"%1\""
:start
;regedit /s "%~f0"
;echo.注册成功
;pause

其实后面的批处理脚本前面不加;也是可以的,当然为了保证不冲突最好还是加一下。 附:批处理代码解释

;regedit /s "%~f0"&&goto :eof %~f0

就是批处理文件本身的完整路径(为什么不用%0呢,因为%0虽然也是代表自身但有时是不完整的)
&& 前面的语句执行成功后就执行后面的语句.(如果是一个&就不管前面的语句是否执行成功都会执行后面的语句。)
goto :eof 转到文件未尾,一般代表执行结束。(后面的goto :start,转到标签:start执行)

文章首发【北极寒流】 将REG文件转换成CMD/BAT文件(REG TO BAT混合编程)
原文链接: http://blog.epinv.com/post/1003_reg-to-bat.html
本文章不反对转载,但请厚道之人转载时在文章开头留下文章链接!谢谢!