かなり具体的な機能を実行するバッチファイルを作成しようとしています:
レジストリ キー「\HKLM\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002bE10318}」を検索します。
特定のテキスト文字列を含むすべてのサブキーを検索します。この場合は、「DriverDesc」値の「Intel」です。
"DriverDesc" 値に "Intel" を含むキーでのみ、"PnPCapabilities" 値データを "38" (16 進数) に変更します。
これらのことをそれぞれ個別に行う方法は知っていますが、それらすべてを 1 つのバッチで一緒に動作させることはできません。バッチ言語に関する私の知識はまだあまりにも限られており、自分で適切に行う方法や、既存のバッチを解読して変更する方法を知ることはできません。
混乱を避けるために、Intel 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
意図したとおりに動作するように修正されました。