Board logo

标题: [注册表类] 批处理如何复制注册表键值? [打印本页]

作者: hzusb    时间: 2011-11-30 23:13     标题: 批处理如何复制注册表键值?

比如:HKLM\123\456\下面有个键名:key1 的值为:c:\windows  (其中c:\windows值不是固定值)
实现:HKLM\123\456\下面有个键名:key2 的值为:c:\windows  (或c:\windows\system)

我想过把这个值导出去修改一下再导进来,但感觉太繁琐,没有更方便点的办法,请教一下知道的朋友,谢谢!
作者: awk    时间: 2011-11-30 23:38

直接用reg add命令修改可以吗?
作者: hzusb    时间: 2011-12-1 09:29

回复 2# awk


    主要是c:\windows这个值不是固定的,所以想读取这个值,再赋于给key2。
作者: slore    时间: 2011-12-1 12:04

批处理没有读取比较可惜。。。

VBS或者其他3方的话,读取key1值再写入key2
作者: slore    时间: 2011-12-1 12:04

批处理没有读取比较可惜。。。

VBS或者其他3方的话,读取key1值再写入key2
作者: hzusb    时间: 2011-12-1 12:14

回复 5# slore


    reg query 不是读取?
作者: slore    时间: 2011-12-1 12:19

我理解的导出就是reg query

for /f + ('reg query')
然后读取数据啊。VBS是直接读取到值,read完了接个write就好了。

BAT就得上面那样。。。要用for去分析数据
作者: hzusb    时间: 2011-12-1 12:51

谢谢关注,只是批处理只懂皮毛,还请大侠们出手相助!
作者: awk    时间: 2011-12-1 12:56

回复 7# slore


楼主说的导出应该是reg export吧
作者: hzusb    时间: 2011-12-1 14:42

回复 9# awk


    我是希望有更方便的方法,不用导出导入的
作者: Hello123World    时间: 2011-12-1 15:34

语法:reg add 项 /v 键名 /t 键值类型 /d 键值 /f(强制执行)

http://bbs.bathome.net/thread-14001-1-1.html
作者: lxzzr    时间: 2011-12-1 15:41

reg copy 命令?
作者: awk    时间: 2011-12-1 16:55

回复 10# hzusb


reg query + reg add
作者: hzusb    时间: 2011-12-1 17:22

回复 11# Hello123World


谢谢, reg add这条命令不适合我这种情况,主要是因为值不是固定的,需读取才知道!
作者: hzusb    时间: 2011-12-1 17:23

回复 12# lxzzr


    reg copy好像只能复制整个项,不能复制某个键值啊
作者: hzusb    时间: 2011-12-1 17:24

回复 13# awk


    这个组合命令应该可以解决,但基础比较弱啊,代码不会写
作者: awk    时间: 2011-12-2 10:04

  1. @echo off
  2. for /f "tokens=1-2 delims=:" %%a in ('reg query "HKEY_CURRENT_USER\123\456" /v key1') do (
  3.     set "valueLeft=%%a"
  4.     set "valueRight=%%b"
  5. )
  6. set "value=%valueLeft:~-1%:%valueRight%"
  7. reg add "HKEY_CURRENT_USER\123\456" /v key2 /t reg_sz /d "%value%" /f
复制代码

作者: hzusb    时间: 2011-12-2 11:43

回复 17# awk


    非常感谢!效果基本出来了!有点小问题,这个值后面总会多一个冒号或者引号!
作者: awk    时间: 2011-12-2 12:38

回复 18# hzusb


把你reg query的结果给我看看吧
作者: hzusb    时间: 2011-12-2 14:18

本帖最后由 hzusb 于 2011-12-2 14:19 编辑

回复 19# awk


    UninstallString    REG_SZ    "C:\Program Files\Realtek\unins000.exe"

   结果key2的值为:C:\Program Files\Realtek\unins000.exe"




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2