Windowsバッチファイル

バッチファイルでレジストリを操作する【reg add・query・deleteの使い方】

Windowsバッチファイル
記事内に広告が含まれています。

Windowsのレジストリはシステム設定を管理するデータベースです。バッチファイルからregコマンドで読み書き・変更・削除が行えます。変更前の注意点と一緒に解説します。

レジストリの基本構造

ハイブ(省略形)正式名内容
HKLMHKEY_LOCAL_MACHINEシステム全体の設定(管理者権限が必要)
HKCUHKEY_CURRENT_USER現在のユーザーの設定
HKCRHKEY_CLASSES_ROOTファイルの関連付けなど
HKUHKEY_USERS全ユーザーの設定

reg queryでレジストリの値を読み取る

@echo off

rem 指定したキーのすべての値を表示
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

rem 特定の値のみ取得(/v オプション)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion

rem 値を変数に格納(for /f を使う)
for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do (
    set OS_NAME=%%a
)
echo OSバージョン: %OS_NAME%

reg addでレジストリに値を書き込む

説明
REG_SZ文字列
REG_DWORD32ビット整数(0や1などの数値)
REG_EXPAND_SZ環境変数を含む文字列
REG_MULTI_SZ複数の文字列
REG_BINARYバイナリデータ
@echo off

rem 文字列値を書き込む(/f で確認なしに上書き)
reg add "HKCU\Software\MyApp" /v Version /t REG_SZ /d "1.0.0" /f

rem 数値(DWORD)を書き込む
reg add "HKCU\Software\MyApp" /v EnableFeature /t REG_DWORD /d 1 /f

rem 結果確認
reg query "HKCU\Software\MyApp"

rem 不要になったキーを削除
reg delete "HKCU\Software\MyApp" /f

変更前のバックアップ(reg export)

@echo off
rem レジストリキーをバックアップ(重要:変更前に必ず実行)
reg export "HKCU\Software\MyApp" "C:\backup\MyApp_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.reg"
echo バックアップ完了

rem 復元する場合
rem reg import "C:\backup\MyApp_20260424.reg"

重要:レジストリの誤った変更はWindowsの動作に深刻な影響を与えます。必ず reg export でバックアップを取ってから変更しましょう。HKLMの変更は管理者権限が必要です。

まとめ

  • reg queryで値を確認、reg addで書き込み、reg deleteで削除できる
  • /f オプションで確認なしに処理を実行できる
  • 変更前は必ず reg export でバックアップを取ること
  • HKLMへの書き込みは管理者権限が必要

コメント

タイトルとURLをコピーしました