2

目标是创建一个批处理文件,该文件将删除多个版本的显卡驱动程序的注册表项。它应该在 HKLM\System\CurrentControlSet\Control\Video 注册表项和子项中搜索制造商名称,并将结果写入列表或设置多个变量,然后删除每个变量。

这是我的原始脚本,似乎可以正常工作。

:loop reg
for /f "delims=\, tokens=6" %%r in ('reg query HKLM\System\CurrentControlSet\Control\Video /s /f atikmdag') do set rVAR=%%r
for %%r in (%rVAR%) do reg delete HKLM\System\CurrentControlSet\Video\%%r /f
if not exist "reg query HKLM\System\CurrentControlSet\Control\Video /s /f atikmdag" goto xfiles
goto loop reg

:xfiles
rest of script

变量 %%r 将是显卡的 GUID,例如 {3662D7D0-8848-4091-9116-06D253535481}

问题是我需要删除多个驱动程序版本的注册表项,并且搜索字符串“atikmdag”不会返回所有结果。

我试过这个 reg 查询 HKLM\System\CurrentControlSet\Control\Video /s /v DriverDesc /f "ati"

但它会返回“DriverDesc”的所有现有条目,而不仅仅是在数据字段中具有“ati”的条目。我想也许 /s 会覆盖 /f,我不确定。

TIA 寻求帮助。-M

4

0 回答 0