reg2bat_拖动reg文件到此转换

在网上找到了reg转bat的方法,自己优化了一下改为reg拖动到bat自动生成bat的模式

@echo off
color a
echo  请耐心等候...
setlocal enabledelayedexpansion
echo.>\\?\%1.bat
for /f "skip=2 tokens=*" %%i in ('type \\?\%1') do (
set char=%%i
set char=!char:~0,1!
if !char!==[ (
set key=%%i
set key=!key:[HKEY_LOCAL_MACHINE=HKLM!
set key=!key:[HKEY_CURRENT_USER=HKCU!
set key=!key:[HKEY_CLASSES_ROOT=HKCR!
set key=!key:[HKEY_USER=HKU!
set key=!key:[HKEY_CUREENT_CONFIG=HKCC!
set key=!key:]=!
) else (
set vtd=%%i
for /f "tokens=1,2* delims==" %%i in ("!vtd!") do (
set v=%%i
set d=%%j
set t=REG_SZ
set type=!d:~0,4!
if !type!==dwor set t=REG_DWORD && set d=!d:dword:=!
if !type!==hex: set t=REG_BINARY && set d=!d:,=! && d=!d:hex:=!

if !v! == @ (
echo reg add "!key!" /ve /t !t! /d !d! /f>>\\?\%1.bat
) else (
echo reg add "!key!" /v !v! /t !t! /d !d! /f>>\\?\%1.bat
)

)
)
)
::cmd /k

\\?\%1 代表拖动到bat的文件名

已解决缺陷:默认键会转为/v @而不是/ve,还需要对输出的bat文件中进行替换 /v @ 换为 /ve

无法转义value中的%% \\等转义字符,需要自己替换

备案:苏ICP备20032543号-2