标题: [文件操作] [已解决]如何用批处理将reg文件转为bat文件 [打印本页]
作者: yunyan100 时间: 2013-3-15 09:48 标题: [已解决]如何用批处理将reg文件转为bat文件
本帖最后由 yunyan100 于 2013-3-15 12:12 编辑
如题,我想实现在的功能是,运行该批理后,当前文件夹下的所有reg文件转换为同文件名的bat文件,不是将reg文件全转换为一个bat文件,下面这段代码就是将所有的reg文件都转到了一个bat文件里,请问我的这种想法能实现吗?如能,还请大家给补补课,谢谢- @echo off
- color a
- mode con cols=20 lines=3
- setlocal enabledelayedexpansion
- echo.>_may.bat
- for /f "skip=2 tokens=*" %%i in ('type *.reg') 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:=!
- echo reg add "!key!" /v !v! /t !t! /d !d! /f>>may.bat
- )
- )
- )
复制代码
作者: BAT-VBS 时间: 2013-3-15 10:35
http://bbs.bathome.net/thread-6565-1-1.html
作者: BAT-VBS 时间: 2013-3-15 10:46
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.reg) do (
- >%%~na.bat type nul
- for /f "skip=2 tokens=*" %%b in ('type %%a') do (
- set char=%%b
- set char=!char:~0,1!
- if !char!==[ (
- set key=%%b
- 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 (
- for /f "tokens=1,2* delims==" %%c in ("%%b") do (
- set v=%%c
- set d=%%d
- set t=REG_SZ
- set type=!d:~0,4!
- if !type!==dwor (
- set t=REG_DWORD
- set d=!d:dword:=!
- ) else if !type!==hex: (
- set t=REG_BINARY
- set d=!d:,=!
- set d=!d:hex:=!
- )
- >>%%~na.bat echo reg add "!key!" /v !v! /t !t! /d !d! /f
- )
- )
- )
- )
复制代码
作者: yunyan100 时间: 2013-3-15 11:54
非常感谢bat-vbs,你给写的代码完全符合我的想法,那个链接里的只能是单个更改,不完美
作者: BAT-VBS 时间: 2013-3-15 12:01
回复 4# yunyan100
问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
作者: yunyan100 时间: 2013-3-15 12:09
本帖最后由 yunyan100 于 2013-3-15 12:10 编辑
BAT-VBS ,发现个问题,如果注册文件是[-HKEY_LOCAL_MACHINE\SOFTWARE\SWIFTDOG]这种格式的,并不能转为reg delete *****这种形式的,而还是reg add 形式的,这个能解决就很完美了,你给的链接中的vbs脚本倒时可以,只是不能批量
作者: yunyan100 时间: 2013-3-15 12:16
回复 5# BAT-VBS
en
作者: BAT-VBS 时间: 2013-3-15 13:21
回复 6# yunyan100 - @echo off
- for %%a in (*.reg) do (
- CScript Reg2Bat.vbs /i:%%a /o:%%~na.bat /Q
- )
复制代码
作者: yunyan100 时间: 2013-3-15 15:52
回复 8# BAT-VBS
有法在之前那个批处理上做到吗,
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |