Board logo

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

作者: mokson    时间: 2011-9-9 14:18     标题: 如何用批处理查找注册表的某个值,并获取上一级的名称?

本帖最后由 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]

批处理如何写呢?
作者: hfg1977    时间: 2011-9-9 19:48

本帖最后由 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
复制代码

作者: mokson    时间: 2011-9-9 20:39

感谢了,我要认真地研究每一行代码!




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