Windows – レジストリをバッチでバックアップ!

Updated:


今日は、Windowsで「 レジストリ情報 」をバッチでバックアップすることについてです。

Windows使っている方で、レジストリをバックアップされている方もおられると思います。

大抵は、レジストリエディタ「 regedit 」を開いてGUIでエクスポートとかされている思います。 滅多にしないことなんで、別にそれでも十分なんですけど。。。

僕はバッチ処理させています。

いちいち、レジストリエディタを開かずに、バッチファイルを実行させるだけでできるようにしています。

【概要】 レジストリの5種類のルートキーごとにエクスポートし、それらをLZh圧縮して、ファイル名に日付・時刻を付加して保存。

バッチファイル例 [ 任意のファイル名.bat ]

@TITLE ■ BackUp Registory... 

@REM **** 環境変数設定
@SET BAK_DATA=D:\20_BAK\Reg\ExpData\
@SET BAK_LZH=D:\20_BAK\Reg\
@SET BAKDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
@SET BAKTIME=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
@IF "%TIME:~0,1%"==" " SET BAKTIME=0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%
@SET LOGFILE=D:\03_Bat\Log\BAK_REG.log

@REM **** エクスポートデータを一旦削除
@ECHO DELETE EXP_DATA ...
@DEL /Q %BAK_DATA%*.*    ← 上書きできないので、一旦ファイルを削除
@ECHO.

@REM **** レジストリのエクスポート
@ECHO EXPORT REG HKCR ...
@REG EXPORT HKCR %BAK_DATA%EXP_HKCR.reg ← HKEY_CLASSES_ROOT をエクスポート
@ECHO.
@ECHO EXPORT REG HKCU ...
@REG EXPORT HKCU %BAK_DATA%EXP_HKCU.reg ← HKEY_CURRENT_USER をエクスポート
@ECHO.
@ECHO EXPORT REG HKLM ...
@REG EXPORT HKLM %BAK_DATA%EXP_HKLM.reg ← HKEY_LOCAL_MACHINE をエクスポート
@ECHO.
@ECHO EXPORT REG HKU ...
@REG EXPORT HKU  %BAK_DATA%EXP_HKU.reg  ← HKEY_USERS をエクスポート
@ECHO.
@ECHO EXPORT REG HKCC ...
@REG EXPORT HKCC %BAK_DATA%EXP_HKCC.reg ← HKEY_CURRENT_CONFIG をエクスポート
@IF NOT ERRORLEVEL==0 GOTO :BAK_ERR

@REM **** 圧縮保存
@C:
@CD "C:\Program Files\ArchiverDll\UNLHA32"
C:\PROGRA~1\UNDLL\UNLHA32 a -rd %BAK_LZH%REG_%BAKDATE%_%BAKTIME% %BAK_DATA% *.*
@IF NOT ERRORLEVEL==0 GOTO :BAK_ERR

:BAK_END
@SET BAKDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
@SET BAKTIME=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
@IF "%TIME:~0,1%"==" " SET BAKTIME=0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%
@ECHO ■■■■ BACKUP E N D [ %BAKDATE% %BAKTIME% ] ■■■■(正常終了) >> %LOGFILE%
@ECHO. >> %LOGFILE%
@EXIT /B

:BAK_ERR
@SET BAKDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
@SET BAKTIME=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
@IF "%TIME:~0,1%"==" " SET BAKTIME=0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%
@ECHO ■■■■ BACKUP E N D [ %BAKDATE% %BAKTIME% ] ■■■■(異常終了) >> %LOGFILE%
@ECHO [ ERRORLEVEL = %ERRORLEVEL% ] >> %LOGFILE%
@ECHO. >> %LOGFILE%
@EXIT /B

今回は、ルートキーごとにエクスポートしていますが、サブキーも指定するができます。

ただ、最近あんまりこのバッチは動かしていなかったんで、一部エラーが出るところがあって、ちょっとショック!!

ルートキー「 HKLM ( HKEY_LOCAL_MACHINE ) 」の中で、何かがアクセス拒否される。

reg_exp_error_hklm

なぜだろう? 調べてみます。

わかったら、ご報告します!

じゃ、また





 

Sponsored Link

 

Comments