无忧启动论坛

标题: 如何用批处理导出注册表,指定的项! [打印本页]

作者: e98123    时间: 2011-5-29 02:32
标题: 如何用批处理导出注册表,指定的项!
set REGFILE=a.reg
set KEYNAME=HKEY_CURRENT_USER\Environment

echo Windows Registry Editor Version 5.00>%REGFILE%
echo [%KEYNAME%]>>%REGFILE%
reg export "%KEYNAME%" export.bak
type export.bak|find /i """TEMP""">>%REGFILE%

1、以上export.bak导出的内容为:
[HKEY_CURRENT_USER\Environment]
"TEMP"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,4c,00,6f,00,63,00,61,00,6c,00,20,00,53,00,65,00,74,00,\
  74,00,69,00,6e,00,67,00,73,00,5c,00,54,00,65,00,6d,00,70,00,00,00
"TMP"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,\
  45,00,25,00,5c,00,4c,00,6f,00,63,00,61,00,6c,00,20,00,53,00,65,00,74,00,74,\
  00,69,00,6e,00,67,00,73,00,5c,00,54,00,65,00,6d,00,70,00,00,00

2、取TEMP后,在a.reg中只能得到:(只有1行)
"TEMP"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\

3、请问有什么方法可以完整地得到:(完整3行)
"TEMP"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,4c,00,6f,00,63,00,61,00,6c,00,20,00,53,00,65,00,74,00,\
  74,00,69,00,6e,00,67,00,73,00,5c,00,54,00,65,00,6d,00,70,00,00,00


PS:
打算做一个注册表修改的玩意,安装时备份导出原来的设置,卸载时再导入备份时的设置,直接导入注册表REG文件比较方便,不打算使用reg add方法。

[ 本帖最后由 e98123 于 2011-5-29 02:36 编辑 ]
作者: e98123    时间: 2011-5-29 11:15
我有个思路不知行不行得通?

"TEMP"=为起始,"TMP"开头的"为终止,这样的语名应该怎么写呢?
作者: 2010_zheng    时间: 2011-5-30 23:24
setlocal enabledelayedexpansion
set REGFILE=a.reg
set KEYNAME=HKEY_CURRENT_USER\Environment

echo Windows Registry Editor Version 5.00>%REGFILE%
echo.>>%REGFILE%
echo [%KEYNAME%]>>%REGFILE%
set /a temp1=0
reg export "%KEYNAME%" export.bak
type export.bak>export.txt&del export.bak
for /f "delims=" %%1 in (export.txt) do (
        echo %%1|find /i "temp">nul&&set /a temp1=1
        echo %%1|find /i "tmp">nul&&set /a temp1=0
        if !temp1! equ 1 echo %%1>>%REGFILE%)




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3