我正在尝试删除某些注册表值。我已经使用了代码(通过“rojo”)。
如果您定义了确切的键,则此代码可以完美运行。例如,我想从 Run 键中删除 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”,但无济于事。
上面的代码也不会删除数据包含 Logon.vbs 的“脚本”值。我想我将不得不为此使用/d开关......