reg - レジストリを操作する

にメンテナンス済み

regコマンドは、Windows のレジストリを操作するコマンドです。レジストリエディター(regedit)で行うキーや値の確認・追加・変更・削除を、コマンドプロンプトやバッチファイルから実行できます。

設定変更を自動化したい、複数のパソコンに同じ設定を配りたい、といった場面で役立ちます。

レジストリの誤操作に注意

レジストリを誤って変更すると、Windows やアプリケーションが正常に動作しなくなることがあります。変更や削除の前には、必ずreg exportでバックアップを取りましょう。

レジストリの基本

レジストリは、Windows やアプリケーションの設定を保存しているデータベースです。フォルダーのようなキーと、その中に保存される値(名前・種類・データ)で構成されています。

regコマンドでは、キーを次のようなパスで指定します。

HKEY_CURRENT_USER\Software\MyApp

先頭の部分(ルートキー)は、次の略称が使えます。

略称正式名称内容
HKLMHKEY_LOCAL_MACHINEパソコン全体に適用される設定
HKCUHKEY_CURRENT_USER現在のユーザーだけに適用される設定
HKCRHKEY_CLASSES_ROOTファイルの関連付けなど
HKUHKEY_USERSすべてのユーザーの設定
HKCCHKEY_CURRENT_CONFIG現在のハードウェア構成
書き込みに管理者権限が必要なキー

HKCUは現在のユーザーの設定なので、通常の権限でも書き換えられます。一方、HKLMへの書き込みには管理者権限が必要です。権限が足りないと「アクセスが拒否されました」と表示されます。詳しくは関連記事を参照してください。

regコマンドの基本構文

reg <操作> <キー名> [オプション]

操作には次のものがあります。この記事では、よく使うquery・add・delete・export・importを中心に解説します。

操作内容
queryキーや値を表示する
addキーや値を追加する(既存の値は確認後に上書き)
deleteキーや値を削除する
exportキーを.regファイルに書き出す
import.regファイルの内容をレジストリに取り込む
copyキーを別の場所にコピーする
compare2 つのキーや値を比較する
save / restoreキーをバイナリ形式のファイルに保存・復元する
load / unload保存したハイブをレジストリに読み込む・アンロードする
パスに空白がある場合は引用符で囲む

キー名や値の名前に空白が含まれる場合は、"HKCU\Software\My App"のように二重引用符(")で囲みます。

キーや値を表示する(reg query)

キーの内容を表示する

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"

指定したキーの直下にある値と、サブキーが一覧表示されます。このキーには、サインイン時に自動起動するアプリが登録されています。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
OneDrive REG_SZ “C:\Users\taro\AppData\Local\Microsoft\OneDrive\OneDrive.exe” /background
C:\users\user>

表示は「値の名前」「値の種類」「データ」の順に並びます。

特定の値だけを表示する

/vで値の名前を指定します。

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
ProductName REG_SZ Windows 10 Pro
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

名前の付いていない既定の値を表示するときは、/vの代わりに/veを指定します。

サブキーも含めて表示・検索する

/sを付けると、サブキーも含めてすべて表示します。/fと組み合わせると、文字列で検索できます。

サブキーを含めてすべて表示
reg query "HKCU\Software\MyApp" /s
「Chrome」を含む項目を検索
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s /f Chrome

query のオプション

オプション内容
/v 名前指定した名前の値だけを表示する
/ve既定の値(名前なし)を表示する
/sサブキーも含めて再帰的に表示する
/f 検索語検索する文字列を指定する(既定は部分一致・大文字小文字を区別しない)
/k/fの検索対象をキー名だけにする
/d/fの検索対象をデータだけにする
/c大文字小文字を区別して検索する
/e完全に一致するものだけを検索する
/t 種類指定した種類の値だけを表示する

値の種類

値には「種類」があり、reg addの/tで指定します。

種類内容
REG_SZ文字列(省略時はこの種類になります)
REG_EXPAND_SZ%PATH%のような環境変数を含められる文字列
REG_MULTI_SZ複数の文字列(区切り文字は既定で\0)
REG_DWORD32 ビットの数値。設定のオン・オフ(0 と 1)によく使われる
REG_QWORD64 ビットの数値
REG_BINARYバイナリデータ
REG_NONE種類なし

キーや値を追加・変更する(reg add)

reg add <キー名> [/v 名前 | /ve] [/t 種類] [/d データ] [/f]

キーが存在しなければ、途中のキーも含めて作成されます。指定した値がすでに存在する場合は、確認のうえ上書きされます(/fを付けると確認なしで上書きします)。

文字列の値を追加
reg add "HKCU\Software\MyApp" /v UserName /t REG_SZ /d "taro"
数値(DWORD)の値を追加
reg add "HKCU\Software\MyApp" /v Enabled /t REG_DWORD /d 1

実行に成功すると、「この操作を正しく終了しました。」と表示されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>reg add "HKCU\Software\MyApp" /v Enabled /t REG_DWORD /d 1
この操作を正しく終了しました。
C:\users\user>

add のオプション

オプション内容
/v 名前追加する値の名前
/ve既定の値(名前なし)を設定する
/t 種類値の種類(省略するとREG_SZ)
/d データ値に設定するデータ(REG_DWORDは 10 進数または0xで始まる 16 進数)
/s 区切り文字REG_MULTI_SZで複数の文字列を区切る 1 文字(既定は\0)
/f既存の値を、確認なしで上書きする
/f がないと上書きの確認が出る

すでに存在する値に対してreg addを実行すると、上書きするかどうかを尋ねる確認メッセージ(Yes/No)が表示されて入力待ちになります。バッチファイルで自動実行する場合は、/fを付けておかないと処理が止まってしまいます。

例:ファイルの拡張子を表示する

エクスプローラーでファイルの拡張子を表示する設定は、HideFileExtという値で管理されています。0にすると拡張子が表示されます。

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f

設定は、エクスプローラーを開き直すか、サインインし直すと反映されます。

キーや値を削除する(reg delete)

値を
reg delete "HKCU\Software\MyApp" /v UserName /f
キーをサブキーごと削除
reg delete "HKCU\Software\MyApp" /f
オプション内容
/v 名前指定した値だけを削除する
/ve既定の値(名前なし)を削除する
/vaキー内のすべての値を削除する(サブキーは残る)
/f確認なしで削除する
/v を付け忘れるとキーごと消える

/v、/ve、/vaのいずれも付けずにreg deleteを実行すると、キーとその中のすべてのサブキー・値が削除されます。/fを付けていると確認も表示されないため、元に戻せません。実行前にキー名と/vの有無をよく確認してください。

バックアップと復元(reg export / reg import)

レジストリを変更する前に、対象のキーを.regファイルに書き出しておきましょう。

キーをバックアップ
reg export "HKCU\Software\MyApp" "%USERPROFILE%\Desktop\myapp-backup.reg"

同名のファイルが存在する場合は上書きの確認が出ます。確認なしで上書きするには/yを付けます。

バックアップから復元
reg import "%USERPROFILE%\Desktop\myapp-backup.reg"
.reg ファイルはダブルクリックでも取り込める

書き出した.regファイルをダブルクリックしても、内容をレジストリに取り込めます。なお、reg importはファイルに書かれているキーと値を追加・上書きするだけで、バックアップ後に追加された値は削除されません。完全に元の状態へ戻したいときは、先にreg deleteで対象のキーを削除してから取り込みます。

バッチファイルで使う

値を変数に取り込む

reg queryの出力は値の名前 種類 データの形式です。for /fで空白区切りに分解すると、データ部分を取り出せます。

get-product-name.cmd
@echo off

set KEY=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

for /f "tokens=2*" %%a in ('reg query "%KEY%" /v ProductName ^| find "ProductName"') do set PRODUCT=%%b

echo 製品名: %PRODUCT%
文字化けする場合

日本語を含むバッチファイルを UTF-8 で保存すると、そのままではechoの文字が化けることがあります。その場合は、ファイルを Shift_JIS(ANSI)で保存するか、先頭付近にchcp 65001 >nulを追加します。

tokens=2*は、2 番目の項目(種類)を%%a、それ以降すべて(データ)を%%bに代入する指定です。データに空白が含まれていても、%%bにまとめて取得できます。ただし、値の名前自体に空白が含まれる場合は項目の位置がずれるため、この方法は使えません。

パイプは ^ でエスケープする

for /fの括弧内でパイプ(|)を使うときは、^|のようにエスケープします。詳しくは関連記事を参照してください。

キーや値が存在するか確認する

reg queryは、対象が存在しないと終了コード 1 を返します。この性質を使うと、存在確認ができます。

check-key.cmd
@echo off

reg query "HKCU\Software\MyApp" /v Enabled >nul 2>&1
if errorlevel 1 (
  echo 設定がありません。初期値を登録します。
  reg add "HKCU\Software\MyApp" /v Enabled /t REG_DWORD /d 1 /f >nul
) else (
  echo 設定が見つかりました。
)

>nul 2>&1は、標準出力とエラー出力を表示しない指定です。

32 ビット/64 ビットのレジストリビュー

64 ビット版の Windows では、HKLM\SOFTWAREなど一部のキーで、32 ビットのアプリが参照するレジストリが別の場所(WOW6432Node)に分けられています。regコマンドには、どちらのビューを操作するかを指定するオプションがあります。

オプション内容
/reg:3232 ビットのレジストリビューを操作する
/reg:6464 ビットのレジストリビューを操作する
reg query "HKLM\SOFTWARE\MyApp" /reg:32

32 ビットのアプリが読み書きする設定を扱うときに、指定が必要になることがあります。

まとめ

やりたいことコマンド
キーの内容を表示するreg query "キー名"
特定の値を表示するreg query "キー名" /v 値の名前
文字列で検索するreg query "キー名" /s /f 検索語
値を追加・変更するreg add "キー名" /v 名前 /t 種類 /d データ /f
値を削除するreg delete "キー名" /v 名前 /f
キーを削除するreg delete "キー名" /f
バックアップを取るreg export "キー名" ファイル名.reg
バックアップから復元するreg import ファイル名.reg

関連記事

練習問題

練習問題

HKCU\Software\MyAppキーの中にあるEnabledという値だけを、確認なしで削除するコマンドはどれでしょうか?

回答がサーバーに送信されることはありません
練習問題

regコマンドの説明として正しいものはどれでしょうか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #コマンドライン #コマンド #レジストリ #バックアップ