找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4921|回复: 8

[已解决] 请教一个修改注册表问题(感谢 pznpt !)

[复制链接]
发表于 2013-4-17 11:23:54 | 显示全部楼层 |阅读模式
本帖最后由 2011xiaobing 于 2013-4-17 23:21 编辑

问题:求一批处理,把注册表HKLM\MYREG 下所有 字符 C:\  替换成 字符 X:\
谢谢!

发表于 2013-4-17 18:27:14 | 显示全部楼层
  1. @echo off
  2. reg export "HKLM\MYREG" "%temp%\$$"
  3. reg delete "HKLM\MYREG" /f
  4. (for /f "delims=" %%a in ('find /n /v ""^<"%temp%\$$"') do (
  5.    set "str=%%a"
  6.    setlocal enabledelayedexpansion
  7.    set "str=!str:c:\=X:\!"
  8.    set "str=!str:*]=!"
  9.    echo,!str!
  10.    endlocal
  11. ))>"%temp%\$$.reg"
  12. reg import "%temp%\$$.reg"
  13. del "%temp%\$$.*"
  14. pause
复制代码
可以参考:http://www.bathome.net/viewthread.php?tid=20173&rpid=120828
Win7以上系统右键以管理员权限运行
回复

使用道具 举报

 楼主| 发表于 2013-4-17 20:02:47 | 显示全部楼层
感谢尊敬的 pznpt 大师的指点!!!
反馈:
    在测试过程中,由于导出的注册表有几十M之巨,
现在批处理已运行40多分钟,还没结果,不知什么原因。
回复

使用道具 举报

 楼主| 发表于 2013-4-17 20:12:12 | 显示全部楼层
目前只运行到这一步。
Snap1.jpg
回复

使用道具 举报

 楼主| 发表于 2013-4-17 20:17:16 | 显示全部楼层
能不能只导出 只含有C:\ 的部分,这样的注册表只有2M。
回复

使用道具 举报

 楼主| 发表于 2013-4-17 20:24:36 | 显示全部楼层
终于运行结束!

Snap2.jpg

但原注册表已完全被破坏。
回复

使用道具 举报

 楼主| 发表于 2013-4-17 20:35:05 | 显示全部楼层
本帖最后由 2011xiaobing 于 2013-4-17 20:36 编辑

看来用纯CMD替换大量的字符不理想。
能利用第三方字符替换软件解决这个问题吗?
(如:FR.EXE--------FIND_REPLACE)。
由于导出的注册表是unicode编码格式,
要是转换成utf-8格式,字符转换就是秒杀。

还请大师指点!!!
回复

使用道具 举报

发表于 2013-4-17 21:27:13 | 显示全部楼层
本帖最后由 pznpt 于 2013-4-17 21:50 编辑

咋不早说有那么大呢?
1.需要第三方工具:http://www.bathome.net/thread-16975-1-1.html
  1. @echo off
  2. reg export "HKLM\MYREG" "%temp%\$$"
  3. reg delete "HKLM\MYREG" /f
  4. type "%temp%\$$"|sed "s/[Cc]:\\/X:\\/g" > "%temp%\$$.reg"
  5. reg import "%temp%\$$.reg"
  6. del "%temp%\$$.*"
  7. pause
复制代码
2.自己先导出注册表为back.reg,删除原注册表"HKLM\MYREG",运行下面的vbs,再手工将生成的abc.reg导入
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. text = fso.OpenTextFile("back.reg",1,True,-1).ReadAll

  3. With New RegExp
  4.     .Pattern = "c:\\"
  5.     .Global = True
  6.     .IgnoreCase = True
  7.     text = .Replace(text,"X:\")
  8. End With

  9. fso.OpenTextFile("abc.reg",2,True,-1).Write text
  10. MsgBox "OK"
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-4-17 23:20:02 | 显示全部楼层
呵呵,测试成功!
多谢大师!

结帖!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-5-4 10:56

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表