Batch file 如何修复完整注册表项批量删除

Batch file 如何修复完整注册表项批量删除,batch-file,cmd,registry,Batch File,Cmd,Registry,我尝试使用以下行查找注册表项: 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\Compone

我尝试使用以下行查找注册表项:

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/?”了解用法


我如何才能只删除实际的密钥并避免此错误?

这是我在重复问题中迟来的回答

使用
Reg Query
搜索选项,
/F
,只搜索数据值,
/D
,然后删除值行和搜索计数,您可以使用
Find
仅输出包含字符串的行

@Echo关闭
设置“Key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData”
设置“Str=需要手动删除外接程序”
对于/F“Delims=“%%A In('REG Query”%Key%“/S/F”%Str%“/D^查找“HKEY””
)Do Echo=Reg删除“%%A”/F
暂停
更改行
2
3
中的值以满足您的特定要求

如果您对输出满意,只需从倒数第二行中删除
Echo=
,并可以选择删除最后一行。(请注意,我不建议以这种方式删除注册表项,因此在删除这些注册表项之前,您是否应该进行注册表备份由您决定)


请注意,您可能需要以管理员身份运行以删除今天早些时候询问的
HKLM

的精确副本下的密钥。