2015-10-19 182 views
-2

Regsvr32 /u可以取消注册DLL,但无法删除注册表中的相应条目。Regsvr32/u - 取消注册DLL

是否有脚本或工具可以用来删除所有这些注册表值?我无法一个一个删除它,有太多的条目。

如果有人可以提供一个样本.bat文件,这会更方便。

更新: 我创建了一个脚本,但我不能回声结果内循环:)

@echo off 
for /f %%a in (' 
    reg query "HKEY_CLASSES_ROOT" ^| 
    find "Search_Text" 
') do (
    set "regs=%%a" 
    echo %regs% 
) 

pause 
::echo %regs% 
::reg delete "%regs%" 

回答

2

你想delayed expansion(见MSDN)。

@echo off 
setlocal enabledelayedexpansion 

for /f "delims=" %%a in (' 
    reg query "HKEY_CLASSES_ROOT" ^| 
    find "Search_Text" 
') do (
    set "regs=%%a" 
    echo !regs! 
    echo reg delete "!regs!" 
) 

旁注:你不需要延迟扩展,如果你没有在循环体中使用变量:

@echo off 

for /f "delims=" %%a in (' 
    reg query "HKEY_CLASSES_ROOT" ^| 
    find "Search_Text" 
') do (
    echo %%a 
    echo reg delete "%%a" 
)