2013-04-16 81 views
0

我想在批处理命令中使用reg delete删除注册表值。我遇到的问题是我无法删除该值。下面是我想:使用reg删除注册表项删除

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports\" /v C:\convertdoc\output\SilentPrintTemp\126017829image-gif3.ps 

理想我想删除所有条目:

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports\" /v C:\convertdoc\output\SilentPrintTemp\*.ps 

我已经在几个不同的方式尝试过了,不同的参数。通常情况下,双“”在命令结束时停止命令。所以也许我的语法错了?

回答

0

编辑:

保存此与.bat扩展并运行它:

@echo off 
setlocal 
set "ports=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" 

rem get only the first token of each line of "reg query" 
for /f %%I in (
    'reg query "%ports%"' 
) do (
    echo(%%I | findstr /i "c:\\convertdoc\\output\\silentprinttemp\\.*\.ps" >NUL && (
     rem (if "findstr" didn't exit with an abnormal error code) 
     echo Deleting item %%I 
     reg delete "%ports%" /v "%%I" /f 
    ) 
) 
+0

谢谢这么多罗霍。我假设我缺乏经验,并开始编写脚本,这就是为什么我不知道命令注册查询的原因。我会研究你的剧本并学习它。你有没有什么好的参考来学习关于批处理脚本的知识? –

+0

@ user2287626 - 如果我的回答对您有所帮助,请考虑点击复选标记将其标记为已接受。如果我没有记错,在ss64.com上有一个初学者指南,有人说这是值得的。大多数情况下,如果有什么您有兴趣学习,可以通过谷歌搜索,搜索该网站,并且通常查看人们用来解决问题的代码。如果你想更多地了解一个特定的命令(比如'reg'),打开'cmd'提示符并输入'reg /?'是学习的好方法。 – rojo

+0

该脚本无法正常工作,它搜索价值,我看到脚本如何工作,但它不删除值。感谢所有的帮助,我一定会结帐ss64.com –