Я пытаюсь удалить определенные значения реестра. Я использовал код (автор "rojo").
Этот код отлично работает, если вы определяете точный ключ. Например, я хочу удалить Logon.vbs из клавиши «Выполнить». Если я также хочу удалить Logoff.vbs, похоже, я не могу использовать *.vbs для удаления этих двух файлов. Как бы я это сделал (удалив несколько ключей с одним и тем же расширением)?
Связанный с этим вопрос заключается в том, как удалить ключ, содержащий определенные данные. Например, у меня есть ключ с именем Logon, который содержит данные для C:\Windows\Logon.vbs. Я хочу, чтобы этот ключ также был удален. При использовании приведенного выше примера это не сработало.
У меня есть разрешения на эти ключи, так что это не проблема. Что я упускаю или делаю неправильно?
В качестве примера я предоставил скриншот, где пример (1) представлен красным цветом, а (2) - синим. Скриншот:
Код в моем первом примере будет выглядеть так:
@echo off
setlocal
set "DisableScripts=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
rem get only the first token of each line of "reg query"
for /f %%I in (
'reg query "%DisableScripts%"'
) do (
echo(%%I | findstr /i "Logon.vbs" >NUL && (
rem (if "findstr" didn't exit with an abnormal error code)
echo Deleting item %%I
reg delete "%DisableScripts%" /v "%%I" /f
)
Это прекрасно удаляет ключ «Logon.vbs». Однако я также хочу удалить «Logoff.vbs». Я пробовал с "*.vbs", но безрезультатно.
Приведенный выше код также не удаляет значение «Script», в котором данные содержат Logon.vbs. Я полагаю, что мне как-то придется использовать переключатель /d для этого...