バッチファイルで REG_MULTI_SZ に値を追加する方法

HKEY_LOCAL_MACHINE の SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost にはカスケード型のサービスの登録レジストリがあるのですが、これを手動で追加する必要が出てきたので、スクリプトを組んでみました。

以下は SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost"  の netsvcs に値があれば 何もせずに終了、キーがなければ作成、あって値がなければ値を追加する処理を行うスクリプトです

@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET TPX=
for /f "tokens=3 skip=2" %%A in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost" /v netsvcs' ) do SET TPX=%%A
if NOT "" == "%TPX%" GOTO :PROCEXE
echo キーが存在しない
reg ADD "HKLM\software\microsoft\Windows NT\CurrentVersion\Svchost" /t REG_MULTI_SZ /v netsvcs /d HidServ\0 /f
GOTO :EOFGO
:PROCEXE
echo !TPX! | findstr /i "hidserv\0" > null
if ERRORLEVEL == 1 ( ECHO 追記処理 & GOTO :ADDEXE)
if ERRORLEVEL == 0 ( ECHO 既に存在します & GOTO :EOFGO)
ECHO 何らかのエラー
:ADDEXE
reg ADD "HKLM\software\microsoft\Windows NT\CurrentVersion\Svchost" /t REG_MULTI_SZ /v netsvcs /d HidServ\0!TPX:~0,-2! /f
:EOFGO
pause

ネット上に方法転がってそうなものなんだけど、何故か見つからなかったでござる・ω・。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です