web-dev-qa-db-ja.com

.bat / .cmdスクリプトを使用してレジストリエントリを変更することは可能ですか?

.bat/.cmdスクリプトを使用してレジストリ値(文字列またはDWORD)を変更することは可能ですか?

44
Brian R. Bondy

REGコマンドを使用できます。 http://www.ss64.com/nt/reg.html から:

Syntax:

   REG QUERY [ROOT\]RegKey /v ValueName [/s]
   REG QUERY [ROOT\]RegKey /ve  --This returns the (default) value

   REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]
   REG ADD [ROOT\]RegKey /ve [/d Data] [/f]  -- Set the (default) value

   REG DELETE [ROOT\]RegKey /v ValueName [/f]
   REG DELETE [ROOT\]RegKey /ve [/f]  -- Remove the (default) value
   REG DELETE [ROOT\]RegKey /va [/f]  -- Delete all values under this key

   REG COPY  [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey

   REG EXPORT [ROOT\]RegKey FileName.reg
   REG IMPORT FileName.reg
   REG SAVE [ROOT\]RegKey FileName.hiv
   REG RESTORE \\MachineName\[ROOT]\KeyName FileName.hiv

   REG LOAD FileName KeyName
   REG UNLOAD KeyName

   REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s]
   REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s]

Key:
   ROOT :
         HKLM = HKey_Local_machine (default)
         HKCU = HKey_current_user
         HKU  = HKey_users
         HKCR = HKey_classes_root

   ValueName : The value, under the selected RegKey, to edit.
               (default is all keys and values)

   /d Data   : The actual data to store as a "String", integer etc

   /f        : Force an update without prompting "Value exists, overwrite Y/N"

   \\Machine : Name of remote machine - omitting defaults to current machine.
                Only HKLM and HKU are available on remote machines.

   FileName  : The filename to save or restore a registry Hive.

   KeyName   : A key name to load a Hive file into. (Creating a new key)

   /S        : Query all subkeys and values.

   /S Separator : Character to use as the separator in REG_MULTI_SZ values
                  the default is "\0" 

   /t DataType  : REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

   Output    : /od (only differences) /os (only matches) /oa (all) /on (no output)
38
Rui Vieira

@Franci Penov-isの意味で変更可能overwrite with /f、例えば

reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"
99
nray

はい、regコマンドを使用してスクリプトを作成できます。例:

reg add HKCU\Software\SomeProduct
reg add HKCU\Software\SomeProduct /v Version /t REG_SZ /d v2.4.6

これにより、キーHKEY_CURRENT_USER\Software\SomeProduct、および「Version」という名前の文字列値「v2.4.6」をそのキーに追加します。

reg /?に詳細があります。

26
Factor Mystic

これは、はいまたはいいえプロンプトなしでレジストリを変更する方法であり、管理者として実行することを忘れないでください

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc   /v Valuename /t REG_SZ /d valuedata  /f 

以下は、Internet Explorerをデフォルトのブラウザとして設定する実際の例です

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice   /v ProgId /t REG_SZ /d IE.HTTPS  /f 

/ f Force:「値が存在し、Y/Nを上書きします」というプロンプトを表示せずに強制的に更新します

/ d Data:「String」、整数などとして保存する実際のデータ

/ v値:値の名前(例:ProgId)

/ t DataType:REG_SZ(デフォルト)| REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

レジストリキーと値の読み取り、設定、削除、.REGファイルの保存と復元の詳細をご覧ください。 from ここ

10
Shersha Fn

.regファイルを作成し、そのファイルに対してstartを呼び出すことができます。レジストリの任意の部分を.regファイルとしてエクスポートして、形式を確認できます。

ここでフォーマット:

http://support.Microsoft.com/kb/310516

これは、他のソフトウェアをインストールせずに、任意のWindowsマシンで実行できます。

4
Lou Franco

Reg.exeに加えて、powershellも確認することを強くお勧めします。

1
Tim Jarvis

はい。 OSに付属のreg.exeを使用して、レジストリ値を追加、削除、またはクエリできます。 Reg.exeには明示的な変更コマンドはありませんが、削除してから追加することで実行できます。

1
Franci Penov