Question

Est-il possible de modifier une valeur de registre (chaîne ou DWORD) via un script .bat / .cmd?

Était-ce utile?

La solution

Vous pouvez utiliser la commande REG. De 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)

Autres conseils

@Franci Penov - modifier est possible dans le sens d'une écraser avec / f , par exemple

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

Oui, vous pouvez créer un script à l'aide de la commande reg . Exemple:

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

Ceci créerait la clé HKEY_CURRENT_USER \ Software \ SomeProduct et ajouterait une valeur de chaîne "quot v2.4.6". nommé " Version " à cette clé.

reg /? contient les détails.

Voici comment modifier le registre, sans invite Oui ou Non et n'oubliez pas de vous lancer en tant qu'administrateur

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

Ci-dessous, un exemple réel pour définir Internet Explorer comme navigateur par défaut

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

/ f Force: force une mise à jour sans demander "La valeur existe, écrasez   Y / N "

     

/ d Data: données réelles à stocker sous forme de "chaîne", nombre entier, etc.

     

/ v Value: Le nom de la valeur, par exemple ProgId

     

/ t DataType: REG_SZ (par défaut) | REG_DWORD | REG_EXPAND_SZ |   REG_MULTI_SZ

En savoir plus sur les clés et les valeurs de registre Lire, Définir ou Supprimer, enregistrer et restaurer à partir d'un fichier .REG. à partir de ici

Vous pouvez créer un fichier .reg et appeler start dessus. Vous pouvez exporter n’importe quelle partie du registre sous forme de fichier .reg pour connaître le format.

Formater ici:

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

Ceci peut être exécuté sur n’importe quel ordinateur Windows sans installer d’autres logiciels.

Oui. Vous pouvez utiliser reg.exe, fourni avec le système d'exploitation, pour ajouter, supprimer ou interroger des valeurs de registre. Reg.exe n'a pas de commande de modification explicite, mais vous pouvez le faire en effectuant delete puis add.

En plus de reg.exe, je vous recommande vivement de consulter également powershell, qui est beaucoup plus capable de gérer le registre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top