Windowsのレジストリはシステム設定を管理するデータベースです。バッチファイルからregコマンドで読み書き・変更・削除が行えます。変更前の注意点と一緒に解説します。
レジストリの基本構造
| ハイブ(省略形) | 正式名 | 内容 |
|---|---|---|
| HKLM | HKEY_LOCAL_MACHINE | システム全体の設定(管理者権限が必要) |
| HKCU | HKEY_CURRENT_USER | 現在のユーザーの設定 |
| HKCR | HKEY_CLASSES_ROOT | ファイルの関連付けなど |
| HKU | HKEY_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_DWORD | 32ビット整数(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への書き込みは管理者権限が必要



コメント