我正在寻找一个批处理文件来执行一个非常具体的功能:
搜索注册表项“\HKLM\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002bE10318}”
查找包含特定文本字符串的所有子项,在本例中为“DriverDesc”值中的“Intel”
仅在“DriverDesc”值中包含“Intel”的键中将“PnPCapabilities”值数据更改为“38”(十六进制)
我知道如何分别做这些事情,但我不能让它们在一个批次中一起工作。我对批处理语言的了解仍然太有限,不知道如何自己正确完成,或者破译和修改现有的批处理。
为了让事情不那么混乱,我正在尝试禁用一对英特尔 NIC 卡的电源管理选项。我想做一个批处理,它会在任何机器上自动执行此操作,无论存在哪些其他 NIC,或者它们的安装顺序如何。
任何帮助将不胜感激。
以下是我发现、尝试和失败的内容:
编辑:新批次
EDIT2:新批次,正在工作
:start
setlocal ENABLEDELAYEDEXPANSION
set qry=reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}" /s /v DriverDesc
for /f "Tokens=*" %%p in ('%qry%') do (
set var=%%p
set var=!var:^&=!
set var=!var:^)=!
set var=!var:^(=!
call :parse
)
endlocal
goto :EOF
:parse
if /i "%var:~0,5%" NEQ "HKEY_" goto parse1
set key=%var%
set key=%key:HKEY_LOCAL_MACHINE=HKLM%
goto :EOF
:parse1
setlocal ENABLEEXTENSIONS
for /f "Tokens=*" %%f in ('@echo %var%^|findstr /i /c:"Intel(R)"') do (
if defined key reg add %key% /v PnPCapabilities /t REG_DWORD /d 56 /f&set key=
)
endlocal >nul 2>&1
已修复,以便它执行预期的操作。