我尝试使用此行查找注册表项:
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.
当我尝试通过脚本删除使用时:
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 /?”使用。
如何仅删除实际密钥并避免此错误?
答案 0 :(得分:0)
这是我在重复问题中迟来的回答。
使用Reg Query
搜索选项 /F
,并仅搜索数据值 /D
,然后删除值行和搜索计数,您可以使用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
下的密钥。