我尝试使用以下代码行查找注册表项:
REG Query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData /F "Need removed manually Add-In" /S
但它包含以下子键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\145BA990C18DA984499E1D1F9A1BD64D
BB02C99E89C99CD4A8CC6A7AA7576194 REG_SZ C:\Program Files (x86)\Need removed manually Add-In\SimonFell\PocketSoap\psDime.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\37AC9AD16C5204A4D9D92967A6699DEE
BB02C99E89C99CD4A8CC6A7AA7576194 REG_SZ C:\Program Files (x86)\Need removed manually Add-In\SimonFell\PocketSoap\pSOAP32.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\DFD1C740E6047204C8387A02138B234A
BB02C99E89C99CD4A8CC6A7AA7576194 REG_SZ C:\Program Files (x86)\Need removed manually Add-In\SimonFell\PocketSoap\pocketHTTP.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\F3A3DDBA307ACB945868E32C44414A5E
BB02C99E89C99CD4A8CC6A7AA7576194 REG_SZ C:\Program Files (x86)\Need removed manually Add-In\SimonFell\PocketSoap\psProxy.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\BB02C99E89C99CD4A8CC6A7AA7576194\InstallProperties
DisplayName REG_SZ Need removed manually Add-In
End of search: 5 match(es) found.
当我尝试使用with a script删除时:
FOR /f "delims=" %%a IN ('REG Query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData /F "Need removed manually Add-In" /S') DO REG delete "%%a" /f
我成功删除了第一个完整的关键字,但之后,我得到了一个错误,因为脚本正在尝试删除第二行字符串细节:
REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\145BA990C18DA984499E1D1F9A1BD64D" /f
操作已成功完成。
REG delete " BB02C99E89C99CD4A8CC6A7AA7576194 REG_SZ C:\Program Files (x86)\Need removed manually Add-In\SimonFell\PocketSoap\psDime.dll" /f
错误:密钥名称无效。键入"REG DELETE /?“以供使用。
如何才能只删除实际的密钥并避免此错误?
发布于 2018-08-29 01:33:23
这是我在重复问题中迟来的回答。
使用/F
,/D
,Reg Query
search选项,/F
,/D
,search in data values only,然后要删除值行和搜索计数,可以使用Find
仅输出包含字符串HKEY_
的行。
@Echo Off
Set "Key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData"
Set "Str=Need removed manually Add-In"
For /F "Delims=" %%A In ('REG Query "%Key%" /S /F "%Str%" /D^|Find "HKEY_"'
) Do Echo=Reg Delete "%%A" /F
Pause
更改2
和3
行中的值以满足您的特定要求。
如果您对输出满意,只需删除倒数第二行中的Echo=
,也可以选择删除最后一行。(请注意,我不建议以这种方式删除注册表项,因此在删除这些注册表项之前,您可以决定是否应该备份这些注册表项)
请注意,您可能需要以管理员身份运行才能删除HKLM
下的密钥。
https://stackoverflow.com/questions/52062969
复制相似问题