[原创] 将REG文件转换成CMD/BAT文件(REG与CMD混合编程)

发表于

批处理中经常需要使用注册表文件。一般的作法是使用命令 regedit /s 注册表文件.reg 其实根据.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使用以下命令就可以直接在添加

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

%~f0就是批处理文件本身的完整路径(为什么不用%0呢,因为%0虽然也是代表自身但有时是不完整的)

&& 前面的语句执行成功后就执行后面的语句.(如果是一个&就不管前面的语句是否执行成功都会执行后面的语句。)

goto :eof 转到文件未尾,一般代表执行结束。(后面的goto :start,转到标签:start执行)

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
若无特别注明,本站内容均属原创,转载请注明作者(chenall)和出处 chenall's Blog ,请勿用于任何商业用途