楼 主
用Reg copy将注册表项A下所有复制到B下,自动应答不改写
发表于 2009-05-24 10:31 · 中国 云南 昆明 电信
初级用户
★★
积分 76
发帖 64
注册 2008-04-24 23:56
18年会员
UID 116884
性别 男
状态 离线
用Reg copy将注册表项A下的所有子项和值复制到B下,如何自动应答不改写现存的子键和值
请教一条自动应答的问题,我要把一个注册表键下所有项复制到另一个,不覆盖已有的项。正常复制所有的命令是REG COPY HKLM\Software\Test HKCU\Software\Test /s ,然后在提示“值 已存在。要将其改写吗(是/否/全部)?”按N后回车。如果加/f参数,则自动覆盖. 我想不覆盖已在的键及值,实现自动应答"否",用以下echo n| REG COPY HKLM\Software\Test HKCU\Software\Test /s 却不对,貌似进死循环了(自动应答N对del命令是有效的)。请教各位大大
附测试用的test.reg.
我的平台为win2003 sp2
[ Last edited by dejoy on 2009-5-24 at 10:38 ]
第 2 楼
发表于 2009-05-24 20:26 · 中国 广东 广州 番禺区 电信
初级用户
★★
l i u s s
积分 73
发帖 101
注册 2008-09-17 00:21
17年会员
UID 125825
性别 男
来自 GZ
状态 离线
可以用 reg query 读取注册表相关项或值,或用 reg export 导出注册表相关项,如果存在相关值就不复制。
第 3 楼
发表于 2009-05-25 23:05 · 中国 上海 华为云
初级用户
★★
积分 76
发帖 64
注册 2008-04-24 23:56
18年会员
UID 116884
性别 男
状态 离线
第 4 楼
注册表项之间的比较和复制方法
发表于 2009-05-28 06:57 · 中国 广东 广州 电信
初级用户
★★
l i u s s
积分 73
发帖 101
注册 2008-09-17 00:21
17年会员
UID 125825
性别 男
来自 GZ
状态 离线
@echo off
set "key1=HKEY_LOCAL_MACHINE\SOFTWARE\Test"
set "key2=HKEY_CURRENT_USER\Software\Test"
reg export "%key1%" newxso1.reg >nul
reg export "%key2%" newxso2.reg >nul
(
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo Set Fa = objFSO.OpenTextFile^("newxso1.reg", 1, False, -1^)
echo Set Fb = objFSO.OpenTextFile^("newxso2.reg", 1, False, -1^)
echo strText = Fb.ReadAll
echo Do Until Fa.AtEndOfStream
echo strLine = Fa.ReadLine
echo If InStr^(strText, strLine^) = 0 Then
echo strLines = strLines ^& vbCrLf ^& strLine
echo End If
echo Loop
echo strLines = Replace^(strLines, "%key1%", "%key2%"^)
echo Wscript.Echo "Windows Registry Editor Version 5.00" ^& vbCrLf ^& strLines
)>newxso.vbs
cscript //nologo newxso.vbs>newxso.reg
regedit /s newxso.reg
del newxso*.*
以上功能相当于执行以下一行命令,选择不覆盖已存在项目:
reg copy HKLM\SOFTWARE\Test HKCU\Software\Test /s
之前曾经考虑过用 reg compare 命令来比较两个注册表项,找出不同地方来处理,但存在子项的时候,此方法行不通。如果使用全BAT代码形式,在处理存在一些特殊字符时可能出错,在比较文本内容方面,用VBS更易处理,通用性好。
第 5 楼
发表于 2009-05-29 03:16 · 中国 河南 驻马店 联通
新手上路
★
积分 7
发帖 10
注册 2006-11-06 01:52
19年会员
UID 69730
性别 男
状态 离线
论坛跳转: