2015-10-19 4 views
-2

Regsvr32 /u может отменить регистрацию DLL, но не может удалить соответствующие записи в реестре.Regsvr32/u - Unregister DLL

Есть ли сценарий или инструмент, который можно использовать для удаления всех этих значений реестра? Я не могу удалить его один за другим, слишком много записей.

Это более удобно, если кто-то может предоставить образец .bat-файла.

UPDATE: создать скрипт, но я не могу эхо результат внутри цикла :)

@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!" 
) 

Side Примечание: Вам не нужно замедленное расширение, если не работать с переменными в теле цикла:

@echo off 

for /f "delims=" %%a in (' 
    reg query "HKEY_CLASSES_ROOT" ^| 
    find "Search_Text" 
') do (
    echo %%a 
    echo reg delete "%%a" 
) 
Смежные вопросы