找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26227|回复: 2

[注册表类] 如何用批处理查找注册表的某个值,并获取上一级的名称?

[复制链接]
发表于 2011-9-9 14:18:51 | 显示全部楼层 |阅读模式
本帖最后由 mokson 于 2011-9-10 00:57 编辑

注册表信息如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Nokia\App]
“Name”=hex:74,f8,3d,bf,73,79,49

问题:
1:如何定位到指定的注册表 REG_MULTI_SZ (多字符串值类型)的数值?即:hex:74,f8,3d,bf,73,79,49
2:如何获取上一级节点的值?即:[HKEY_LOCAL_MACHINE\SOFTWARE\Nokia\App]

批处理如何写呢?
发表于 2011-9-9 19:48:38 | 显示全部楼层
本帖最后由 hfg1977 于 2011-9-9 20:02 编辑

快速定位注册表,以前写过; 其他问题本论坛多有提及,google吧.


  1. @echo off&setlocal enabledelayedexpansion
  2. title 快速定位注册表
  3. ::检查WMI的运行状态
  4. for /f "tokens=4" %%a in ('sc query winmgmt^|findstr /i "STATE"') do (echo WMI的运行状态:%%~a>con&set "wmirun=%%~a")
  5. if /i not "%wmirun%"=="RUNNING" (
  6. rem 记录WMI的原始配置状态
  7. for /f "tokens=4" %%a in ('sc qc winmgmt^|findstr /i "START_TYPE"') do (echo WMI的原始配置状态:%%~a>con&set "wmicfg=%%~a")
  8. if /i "!wmicfg!"=="DISABLED" (sc config winmgmt start= AUTO)
  9. sc start winmgmt
  10. sc config winmgmt start= !wmicfg!
  11. )>nul 2>nul
  12. set "reg_des=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit"
  13. set "reg_Favorites=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites"
  14. :start
  15. set ee=
  16. set ee=
  17. cls
  18. echo             ==============================================================
  19. echo.
  20. echo                   · 本程序用于快速定位注册表.
  21. echo                      1. HKCU\……Run
  22. echo                      2. HKLM\……Run
  23. echo                      3. HKLM\……Services 服务设置
  24. echo                   · C(c) 把1~3项添加到注册表收藏夹
  25. echo                   · S(s) 新建收藏项 (meijia)
  26. echo                   · Q(q) 空回车 直接退出
  27. echo.
  28. echo                   ·                       hf-g 2009-08-20 ^<彭城^>
  29. echo             ============================================================

  30. set /p ee=输入^|粘贴要查找的注册表键值:
  31. if not defined ee goto :eof
  32. if /i "%ee%"=="q" goto :eof
  33. if /i "%ee%"=="c" goto :reg_sc
  34. set ee=%ee:HKCU=HKEY_CURRENT_USER%
  35. set ee=%ee:HKLM=HKEY_LOCAL_MACHINE%
  36. if "%ee:~-1%"=="" set "ee=%ee:~,-1%"
  37. if "%ee%"=="1" goto :HKCU_Run
  38. if "%ee%"=="2" goto :HKLM_Run
  39. if "%ee%"=="3" goto :HKLM_Services
  40. set ee=%ee:\\=\%
  41. call:goto_reg %ee%

  42. :HKCU_Run
  43. set "ee=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
  44. call:goto_reg %ee%
  45. :HKLM_Run
  46. set "ee=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
  47. call:goto_reg %ee%
  48. :HKLM_Services
  49. set "ee=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services"
  50. call:goto_reg %ee%

  51. :goto_reg reg_key
  52. reg add %reg_des% /v "LastKey" /t REG_SZ /d "%ee%" /f
  53. taskkill  /f /im regedit.exe 2>nul
  54. call start regedit
  55. goto :start

  56. :reg_sc
  57. (
  58. reg add %reg_Favorites% /v "收藏夹" /t REG_SZ /d %reg_Favorites% /f
  59. reg add %reg_Favorites% /v "HKCU_Run" /t REG_SZ /d "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /f
  60. reg add %reg_Favorites% /v "HKLM_Run" /t REG_SZ /d "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /f
  61. reg add %reg_Favorites% /v "服务设置" /t REG_SZ /d "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" /f
  62. reg add %reg_Favorites% /v "运行历史记录" /t REG_SZ /d HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /f
  63. reg add %reg_Favorites% /v "hf'file" /d "HKEY_LOCAL_MACHINE\Software\hf'file" /f
  64. )>nul&goto :start
  65. pause


复制代码
 楼主| 发表于 2011-9-9 20:39:36 | 显示全部楼层
感谢了,我要认真地研究每一行代码!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 07:21 , Processed in 0.011172 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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