バッチファイルからWindowsのレジストリを操作できます。regコマンドを使って設定の読み書き・変更・削除を行う方法を解説します。
regコマンドの種類
| コマンド | 説明 |
|---|---|
| reg query キー | レジストリの値を読み取る |
| reg add キー /v 名前 /t 型 /d 値 | レジストリに値を追加・変更する |
| reg delete キー /v 名前 | レジストリの値を削除する |
| reg export キー ファイル.reg | レジストリをファイルに書き出す |
| reg import ファイル.reg | regファイルをインポートする |
レジストリの値を読み取る(reg query)
@echo off
rem コンピューター名を取得
reg query "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName
rem デスクトップの壁紙パスを取得
reg query "HKCU\Control Panel\Desktop" /v Wallpaperレジストリに値を書き込む(reg add)
@echo off
rem 文字列値を書き込む(/t REG_SZ)
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"レジストリの値を取得して変数に格納
@echo off
for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do (
set OS_NAME=%%a
)
echo Windowsバージョン: %OS_NAME%注意事項
レジストリの誤った変更はWindowsの動作に影響します。必ず事前に reg export でバックアップを取ってから変更しましょう。HKLMへの書き込みは管理者権限が必要です。
まとめ
- reg queryでレジストリの値を読み取れる
- reg add /fで確認なしに値を書き込める(/fは上書き強制)
- for /fと組み合わせてレジストリの値を変数に格納できる
- 変更前に必ずreg exportでバックアップを取ること


コメント