Windowsのシステム設定を変更したり、自動化したりする際に「レジストリ(Registry)」の編集が必要になることがあります。
通常、レジストリエディター(regedit)を使いますが、バッチスクリプトで処理を自動化したい場合は**「regコマンド」**が便利です。
regコマンドを使えば、レジストリのキーや値の取得、追加、変更、削除がコマンドライン上で簡単に実行できます。
本記事では、Windowsのバッチファイルで使えるregコマンドの基本から応用までを詳しく解説します。
具体的な使用例を交えて、レジストリ操作をスムーズに行う方法を学んでいきましょう。
regコマンドとは?
Windowsのレジストリ(Registry)は、OSやアプリケーションの設定情報を保存するデータベースです。
通常、GUIの「レジストリエディター(regedit)」を使って編集しますが、コマンドラインやバッチファイルで操作する場合はregコマンドを使用します。
regコマンドを使うメリット:
- 自動化が可能(バッチファイルで実行できる)
- レジストリの変更履歴を管理しやすい
- リモートPCのレジストリ操作ができる
次に、regコマンドの基本構文を見ていきましょう。
regコマンドの基本構文
regコマンドは、以下の形式で使用します。
reg [操作] [オプション] [パラメータ]
主な操作(サブコマンド)は以下の通りです:
コマンド | 説明 |
---|---|
reg query | 指定したレジストリキーや値を取得 |
reg add | レジストリキーや値を追加 |
reg delete | レジストリキーや値を削除 |
reg copy | レジストリキーや値をコピー |
reg export | レジストリのデータをファイルに保存 |
reg import | ファイルからレジストリを復元 |
reg compare | 2つのレジストリキーを比較 |
reg save | レジストリキーをファイルに保存 |
reg restore | 保存したレジストリを復元 |
reg load | ハイブファイルを読み込む |
reg unload | ハイブファイルを削除 |
次に、それぞれの操作方法を詳しく解説します。
reg query(レジストリの検索)
レジストリ内の特定のキーや値を取得するコマンドです。
基本構文
reg query [キーのパス] [/v 値名 | /s]
例:レジストリの特定の値を取得
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir
出力例
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
ProgramFilesDir REG_SZ C:\Program Files
例:指定キー以下のすべての値を取得
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" /s
reg add(レジストリの追加・変更)
新しいレジストリキーや値を追加・変更するコマンドです。
基本構文
reg add [キーのパス] /v 値名 /t データ型 /d データ [/f]
例:新しいレジストリキーを追加
reg add "HKEY_CURRENT_USER\Software\MyApp" /v Setting1 /t REG_SZ /d "TestValue" /f
ポイント:
/t REG_SZ
→ 文字列値(REG_SZ)/d "TestValue"
→ 設定するデータ/f
→ 確認なしで実行(なければエラーを防ぐ)
reg delete(レジストリの削除)
レジストリのキーや値を削除するコマンドです。
基本構文
reg delete [キーのパス] [/v 値名 | /va] [/f]
例:特定の値を削除
reg delete "HKEY_CURRENT_USER\Software\MyApp" /v Setting1 /f
例:キー以下のすべての値を削除
reg delete "HKEY_CURRENT_USER\Software\MyApp" /f
reg export & reg import(レジストリのエクスポート・インポート)
レジストリのバックアップや復元に使用します。
レジストリをエクスポート
reg export "HKEY_CURRENT_USER\Software\MyApp" C:\Backup\myapp.reg /y
レジストリをインポート
reg import C:\Backup\myapp.reg
reg copy(レジストリのコピー)
レジストリキーを別の場所にコピーするコマンドです。
基本構文
reg copy [元キーのパス] [コピー先キーのパス] [/s] [/f]
例:レジストリキーをコピー
reg copy "HKEY_LOCAL_MACHINE\SOFTWARE\MyApp" "HKEY_LOCAL_MACHINE\SOFTWARE\MyAppBackup" /s /f
reg compare(レジストリの比較)
2つのレジストリキーを比較し、違いを表示するコマンドです。
基本構文
reg compare [キーのパス1] [キーのパス2] [/v 値名]
例:2つのキーを比較
reg compare "HKEY_LOCAL_MACHINE\SOFTWARE\MyApp" "HKEY_LOCAL_MACHINE\SOFTWARE\MyAppBackup" /s
応用編:バッチファイルでregコマンドを活用
regコマンドをバッチスクリプトで活用すれば、レジストリの変更を自動化できます。
例:起動時に特定のレジストリ設定を変更するバッチ
@echo off
reg add "HKEY_CURRENT_USER\Software\MyApp" /v Setting1 /t REG_SZ /d "AutoConfig" /f
exit
このバッチを「スタートアップ」に入れれば、ログイン時に自動実行できます。
まとめ
Windowsのregコマンドを使えば、レジストリの操作をバッチスクリプトで簡単に管理できます。
reg query
→ レジストリの値を取得reg add
→ 新しいキーや値を追加reg delete
→ キーや値を削除reg export
® import
→ レジストリのバックアップ&復元reg compare
→ 2つのレジストリを比較
バッチスクリプトと組み合わせることで、レジストリ管理を自動化できるので、ぜひ活用してください!