Comment modifier une valeur de clé de registre existante à partir de cmd?
Il y a beaucoup d'options et de commutateurs, de cloches et de sifflets, pour la commande Reg. Il existe des options pour interroger, ajouter et supprimer des clés, des sous-clés et des noms de valeur. Mais comment modifiez-vous les données d'un nom de valeur existant? Supprimez-vous complètement le nom de la valeur, puis ajoutez-le à nouveau et retapez la valeur / les données modifiées? Cela semble très lourd ...
Je ne suis pas intéressé par une automatisation de script / batch, du moins pas maintenant, je veux juste une simple modification du registre via la commande cmd Reg. Sans avoir besoin de détruire une clé juste pour l'ajouter une seconde plus tard avec quelques données supplémentaires. Le même type d'opération que vous pouvez faire dans Regedit.
Voici un exemple pour stimuler le processus de réflexion.
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: true
Maintenant, celui-ci est très bien, mais que faire si je dois changer les données de valeur de "vrai" à "faux". Pour que j'obtienne ceci à la place:
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: false
Quelles sont les options et la syntaxe pour le faire à partir de cmd? ....
Mise à jour:
Je viens de réaliser maintenant que l'exemple ci-dessus aurait peut-être été trop facile ...
Dans l'exemple ci-dessus, je peux simplement faire ce qui suit:
reg delete HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone
reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Je peux me permettre de supprimer complètement la valeur, puis de l'ajouter à nouveau, car les données qu'elle contient sont très petites. C'est juste une chaîne comme "true" ou "false". Ce n'est pas trop difficile à recréer.
Voici un exemple plus difficile avec plus de contenu de données:
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Value name: Path
Value type: Reg_Sz
Data: C:\Program Files (x86)\ImageMagick-6.8.5-Q16;C:\PROGRA~2\GTK2-R~1\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files (x86)\WinHasher";C:\Program Files (x86)\Android\android-sdk\tools\;C:\Program Files (x86)\Android\android-sdk\platform-tools\;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\;C:\Program Files (x86)\Common Files\Teleca Shared;C:\Program Files (x86)\Notepad++
Je souhaite supprimer uniquement des parties du contenu des données. Plus précisément, je souhaite uniquement supprimer le dernier chemin de recherche, le C: \ Program Files (x86) \ Notepad ++.
Comment abordez-vous celui-ci ?? ...
Vous ne vous attendez pas à ce que je retape tout cela ?? ......
Réponses:
À utiliser
REG ADD
avec le paramètre "/ f" pour forcer l'écrasement.REG ADD /?
explique les paramètres.Pour insérer une nouvelle valeur ou basculer une valeur de chaîne de "false" à "true", utilisez une commande comme celle-ci:
Exemple qui lit une valeur existante et ajoute une chaîne avant de la réécrire:
Remarque: Cet exemple suppose que l'ancienne valeur et la nouvelle valeur n'ont pas de blancs. Sinon, il faut ajouter des guillemets et changer le paramètre "tokens". Vérification d'erreur supplémentaire omise par souci de concision. Cependant, tout code manipulant le registre doit absolument faire une vérification d'erreur adéquate.
la source
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v Path /d ;C:\Program Files (x86)\Some_software /f
pour ajouter;C:\Program Files (x86)\Some_software
à la fin de la chaîne?reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Mise à niveau de la valeur Terminé existe, écraser (Oui / Non)? Ainsi, sans le commutateur / f, il vous demandera si vous souhaitez remplacer.Vous pouvez également
REG import foo.reg
dans lequel sefoo.reg
trouve un fichier contenant les informations de registre habituelles à partir desquelles vous exporteriezregedit.exe
.Dans votre exemple, ce serait quelque chose comme:
Plus d'informations disponibles dans cet article Microsoft Technet .
la source