标题: [注册表类] 批处理命令Reg Query /v时如何提取主键路径? [打印本页]
作者: jason128 时间: 2014-12-18 10:00 标题: 批处理命令Reg Query /v时如何提取主键路径?
本帖最后由 pcl_test 于 2016-11-28 10:00 编辑
工作中需要用到批处理命令.刚接触一天.
我原本的目的是想要得到路径然后删除里面的net键的..但是遇到了双数行不是路径的问题.
先贴上我的代码- @echo off
- for /f "tokens=* delims= " %%a in ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe" /s /v "net" ') do (
- echo %%a
- )
- 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 匹配。
请按任意键继续. . .
希望各位大大能帮忙解决一下.
作者: DAIC 时间: 2014-12-18 10:31
- @echo off
- for /f "delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe" /s /v "net" ^| findstr "HKEY_LOCAL_MACHINE"') do (
- echo %%i
- )
- pause
复制代码
这样可以把双数行去掉
作者: jason128 时间: 2014-12-18 11:37
回复 2# DAIC
非常感谢..我重新整合了代码..发现在删除的过程中遇到空格就会抛出这样的错误.- @echo off
-
- ::path
- ::keyword
- ::bakfile
- set path=HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
- set keyword=net
- set bakfile=C:\reg4d36e972Bak.reg
-
- ::Bak up reg
- reg export %path% %bakfile%
-
- ::Iterate out put path\keywords and delete
- for /f "tokens=* delims= " %%i in ('reg query %path% /s /v %keyword% ^| findstr %path%') do (
- echo %%i
- reg delete %%i /v %keyword%
- )
- ::"reg delete %%a /f"
- ::"reg delete
- pause
复制代码
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Bridge
错误: 无效语法。
键入 "REG DELETE /?" 了解用法信息。
作者: jason128 时间: 2014-12-18 12:15
回复 3# jason128
已经解决了.原来是路径要引号的问题.
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |