标题: reg 转 bat , 中有个没有解决的方法。。 [打印本页] 作者: icebat 时间: 2009-12-6 19:24 标题: reg 转 bat , 中有个没有解决的方法。。
:again
@echo off
color 0b
mode con: cols=90 lines=20
title "【REG 2 BAT 2 REG】 "
echo 【REG 2 BAT 2 REG】
echo.
echo.
echo 1.导出注册表为XX.reg
echo.
echo 2.把XX.reg拖入本程序窗口,在XX.reg的旁边生成XX_sourse.bat
echo.
echo 3.运行XX_sourse.bat 生成XX_new.reg
echo.
echo.
echo BY 搞爆地球 重庆理工大 , 2009.12.6
echo http://hi.baidu.com/110denghai
echo.
echo.
:: ================================================
setlocal enabledelayedexpansion
set route=%cd%
set ravel=
set /p ravel= 请拖入要转换的注册表:
set "ravel=%ravel:"=%"
::=====================================
::下面是设置路径的倒退几层传递到rrrr
set "rrrr=%ravel%"
set layers_discard=1
if "%rrrr:~-1%"=="\" set "rrrr=%rrrr:~0,-1%"
for /l %%i in (1,1,%layers_discard%) do call :intercept "%%rrrr%%"
:end
goto start11
:: 下面是为了防止倒退的层数超过根目录
:intercept
for /f "delims=" %%i in (%1) do set "rrrr=%%~dpi"
if "%rrrr:~-2,1%"==":" (goto end) else set "rrrr=%rrrr:~0,-1%"
goto :eof
:: 主程序开始的地方===========================
:start11
for /f "delims=" %%i in ("%ravel%") do set "name=%%~ni"
if exist "%rrrr%\%name%_sourse.bat" (call :erro1)
echo type nul^>"%name%_new.reg">"%rrrr%\%name%_sourse.bat"
for /f "tokens=1* delims=:" %%a in ('type "%ravel%" ^| findstr /n .*') do (
if "%%b" equ "" (
echo echo.^>^>"%name%_new.reg">>"%rrrr%\%name%_sourse.bat"
)else (
echo ^>^>"%name%_new.reg" echo %%b>>"%rrrr%\%name%_sourse.bat"
)
)
::主程序完的地方============================================
cls
color fc
echo.
echo.
echo.
echo.
echo 生成完了,按任意键后返回,继续拖入。。。