[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理命令Reg Query /v时如何提取主键路径?

本帖最后由 pcl_test 于 2016-11-28 10:00 编辑

工作中需要用到批处理命令.刚接触一天.
我原本的目的是想要得到路径然后删除里面的net键的..但是遇到了双数行不是路径的问题.
先贴上我的代码
  1. @echo off
  2. for /f  "tokens=* delims= " %%a in ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe" /s /v "net" ') do (
  3. echo %%a
  4. )
  5. pause
复制代码
运行这行代码得到如下的结果:
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
net    REG_SZ
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Bridge
net    REG_SZ
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\DefaultLanguage
net    REG_EXPAND_SZ
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\net
net    REG_SZ
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\net\111
net    REG_BINARY
搜索结束: 找到 5 匹配。
请按任意键继续. . .

希望各位大大能帮忙解决一下.

回复 3# jason128


    已经解决了.原来是路径要引号的问题.

TOP

回复 2# DAIC
非常感谢..我重新整合了代码..发现在删除的过程中遇到空格就会抛出这样的错误.
  1. @echo off
  2. ::path
  3. ::keyword
  4. ::bakfile
  5. set path=HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
  6. set keyword=net
  7. set bakfile=C:\reg4d36e972Bak.reg
  8. ::Bak up reg
  9. reg export %path% %bakfile%
  10. ::Iterate out put path\keywords and delete
  11. for /f "tokens=* delims= " %%i in ('reg query %path% /s /v %keyword% ^| findstr %path%') do (
  12. echo %%i
  13. reg delete %%i /v %keyword%
  14. )
  15. ::"reg delete %%a /f"
  16. ::"reg delete
  17. pause
复制代码
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Bridge
错误: 无效语法。
键入 "REG DELETE /?" 了解用法信息。

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe" /s /v "net" ^| findstr "HKEY_LOCAL_MACHINE"') do (
  3.     echo %%i
  4. )
  5. pause
复制代码
这样可以把双数行去掉

TOP

返回列表