レジストリからキー名の一部であるGUIDを取得し、それを変数に変換します。

レジストリからキー名の一部であるGUIDを取得し、それを変数に変換します。

GUID私は、(当然のことながら)一意で、時々変化するレジストリから特定のものをキャプチャしようとしています。次に、それをREG ADD操作で使用できる変数に変換します(その部分はわかっています)。

鍵はHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video

サブキーVideo自体には、サブキー名として 8 ~ 10 個の GUID が含まれています。キャプチャするサブキーの名前のユニークな点は、0002、0003 などのサブフォルダーがさらに含まれていることです (他のサブキーには 0001 までしか含まれません)。

実際、0005 を含むサブキーを検索することでこの GUID を取得できました。当然、これが唯一の一致でした。次のコマンドを使用しました:REG QUERY HKLM\SYSTEM\CurrentControlSet\Control\Video /s /f 0005 /k結果は次の通りです:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{E7DC82FD-9088-411B-9B0A-2FED7F034E03}\0005
End of search: 1 match(es) found.

さて、その{E7DC82FD-9088-411B-9B0A-2FED7F034E03}部分を抽出して変数に変換できればいいのですが。

答え1

次のコマンドは必要な GUID を取得し、GUID 環境変数をこの値に設定します。

for /f "usebackq tokens=6 delims=\" %a in (`reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video /s /f 0005 /k`) do set GUID=%a

関連情報