仕事で沢山のレジストリの値を出力することがありました。その時一々レジストリエディタを開いてパスを検索してエクスポートするのはとても面倒でした。
そのため今回はコマンドプロンプトでregのimportコマンドとexportコマンドを用いて、楽にレジストリの値を入力したり、出力したりしたいと思います。
実行環境は下記になります。
PC | Windows 10 home 64bit |
コマンドプロンプトバージョン | 10.0.17134.706 |
reg importコマンドについて
reg importコマンドの使い方について説明します。
reg importコマンドはレジストリに値を登録する際に用いることが出来ます。
C#のプログラム等で組み込んで使用することも出来ます。
その際は実行者に権限がある事を確認してください。
reg importコマンドの詳細
1.コマンドプロンプトを立ち上げます。
2.下記のコマンドを実施します。
reg import /?
3.実施すると下記のように表示されると思います。
REG IMPORT ファイル名 [/reg:32 | /reg:64]
ファイル名 (ローカル コンピューターのみに) インポートされる
ディスク ファイル名。
/reg:32 32 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
/reg:64 64 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
例:
REG IMPORT AppBkUp.reg
ファイル AppBkUp.reg からレジストリ エントリをインポートします
下記に一例を示します。
1.コマンドプロンプトを起動する。
2.下記のコマンドを実施する。
reg import D:\test\test01.reg
構文:reg import 入力したい値が入っているregファイルのパスとregファイルを記載する
3.コマンドプロンプトに操作が完了しましたと表示されたら成功です。
上記でimportの操作が完了しました。レジストリの値などを追加したり更新したりするのに便利です。
reg exportコマンドについて
reg exportコマンドの使い方について説明します。
reg exportコマンドはレジストリに値を出力する際に用いることが出来ます。
C#のプログラム等で組み込んで使用することも出来ます。
その際は実行者に権限がある事を確認してください。
reg importコマンドの詳細
1.コマンドプロンプトを立ち上げます。
2.下記のコマンドを実施します。
reg export /?
3.実施すると下記のように表示されると思います。
REG EXPORT キー名 ファイル名 [/y] [/reg:32 | /reg:64]
キー名 ルートキー[\サブキー] (ローカル コンピューターのみ)。
ルートキー [ HKLM | HKCU | HKCR | HKU | HKCC ]
サブキー 選択したルートキーの下のレジストリ キーの完全な名前。
ファイル名 エクスポートされるディスク ファイル名。
/y プロンプトなしで既存のファイルを強制的に上書きします。
/reg:32 32 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
/reg:64 64 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。
例:
REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
キー MyApp のすべてのサブキーと値をファイル AppBkUp.reg へエクスポートします
下記に一例を示します。
1.コマンドプロンプトを起動する。
2.下記のコマンドを実施する。
reg export HKEY_CURRENT_USER\Software\test test.reg
構文:reg export 出力したい値があるパス 出力ファイル名をreg拡張子で記載
3.コマンドプロンプトに操作が完了しましたと表示されたら成功です。
上記でexportの操作が完了しました。レジストリの値を出力するのに便利です。
実行時の注意
レジストリをコマンドで変更する際は、コマンドにより期待通りの設定がされることを確認した上で実行してください。確認せずに実行することで意図しないレジストリが追加、削除されることになります。
最悪の場合、パソコンが起動しなくなる恐れがあります。
レジストリ変更のコマンドは、管理者権限で実行してください。ログオンしているユーザーの設定情報を格納している「HKEY_CURRENT_USER(HKCU)」配下のキーであれば、管理者権限は不要ですが、「HKEY_LOCAL_MACHINE(HKCM)」配下のレジストリを変更するときは、管理者権限でないと実行したときに変更する権限がないため、エラーが発生します。管理者権限であれば、HKCU、HKCM問わずエラーが発生せず実行することができるため、レジストリ操作のコマンドは管理者権限で実行してください。
コマンドプロンプトから出力する場合
パスにスペースがある時は””キー名を囲まないと正常に動作せず、出力されません。
そのため、キー名やパスには「”」を付けることをお勧めします。
サンプルバッチ
上記のコマンドを使用したサンプルバッチ
このサンプルバッチは複数のレジストリの値を出力します。
@echo off
rem レジストリのExportバッチサンプル
echo レジストリの値を出力します。
pause
@pushd %0..
@cls
REG EXPORT "HKEY_CURRENT_USER\Software\test01" test01.reg
REG EXPORT "HKEY_CURRENT_USER\Software\test02" test02.reg
pause
まとめ
以上で、reg のimport/exportコマンドを説明しました。
偶に#のプログラムからコマンドプロンプトを利用してレジストリを操作するプログラムを書きますが、その際は上記のコマンドを実施しているので参考になるかと思います。
また、サンプルに作成したバッチでは複数のレジストリの出力バッチをサンプルにしました。これは何回もパスを検索することなく、出力したいパスさえわかれば値を変えるだけで一気に出力され楽になります。
是非活用してみてください。