我正试图删除我创建的批处理文件中的某些注册表项。REG在批处理文件中删除一个包含引号的值吗?
我发现这里的下面的代码,直到它击中REG删除它做工不错
for /F "tokens=1,*" %%a in ('REG QUERY "%KEY%" ^| findstr /I /C:"%VALUE%"') do (REG DELETE %KEY% /v %%a)
的值位于下[HK_CLASSES_ROOT \安装\组件\全球]
正如你可能会看到,这里的大多数值都有引号,例如:
ADODB,fileVersion="7.10.2346.0",version="7.0.3300.00",culture="neutral",publicKeyToken="B03F5F7F11D50A3A"
这不完全是我想要删除的,但它非常接近。
因此,如果我回显%% a它显示值名称,因为它是在引号和一切注册表中。 但是一旦它通过REG DELETE(现在它要求确认),引号就不存在了,所以如果我点击是,它会告诉我它找不到密钥。
很明显,它不能解析它最初发现的相同的东西。我一直在努力寻找解决方案,但迄今为止我还没有找到任何帮助我朝正确方向发展的东西。我知道我可以在vbs中做同样的事情,但这是一条很长的路线,而在vbs中,做同样的工作会更长。
任何帮助表示赞赏,如果你需要更多的信息要求离开,我只是开始乱七八糟的批处理文件。我做了这个,因为我需要给每个我在学校工作时间自动完成所有的依赖关系的安装过程中为我校工程(计算机被幻像)
感谢
我发现http://stackoverflow.com/questions/12822801/registry-value-with-quotes[/link]我没有在之前绊倒他们建议逃逸引号,我要去看看它以编程方式进行并更新我的答案。 – Rayfloyd
是的 - 我刚刚测试过,并且引号必须转义为'\“' – dbenham
我有这个到目前为止对于/ F”tokens = 1,*“%% a in('REG QUERY”%KEY%“^ | FINDSTR/I/C: “%VALUE%”')做( 集合b = %%一个 集b =%b: “= \” % 回声REG DELETE%KEY%/ v%的b% )'但似乎b总是空的,我认为我做错了一些事情,我现在正在努力解决这个问题 – Rayfloyd