Script de fichier par lots Comment exporter, rechercher, remplacer et réimporter une clé de registre (XP, Win2k3, Vista, Windows 7)

Cette recette est conçue pour les personnes connaissant mieux les systèmes d'exploitation et pour ceux qui travaillent dans un contexte d'entreprise de déploiement d'applications. Souvent, lorsque vous travaillez dans l'informatique et dans une équipe de déploiement d'applications, vous rencontrez des situations dans lesquelles vous devez trouver une clé de registre, une clé et la remplacer par une nouvelle entrée. Cependant, il arrive parfois que vous connaissiez la clé d'entrée de registre principale sans savoir quelles entrées doivent être modifiées. Permet de trouver une solution!


ATTENTION:
Si vous n'êtes pas à l'aise avec l'invite de commande, les fichiers de commandes et le registre Windows; Veuillez prendre des précautions supplémentaires lorsque vous testez / utilisez ce fichier de commandes. Personnellement, je recommanderais soit de tester sur une machine virtuelle (c.-à-d. Virtualbox, gratuit; VMWare Workstation) ou une machine qui ne vous intéresse pas. Tu as été prévenu. 🙂

OK, d'abord. Commençons par les deux morceaux de code. Pour utiliser cela, copiez-les et collez-les dans le Bloc-notes, puis enregistrez-les avec les noms donnés (veillez à passer des fichiers txt à la boîte de dialogue Enregistrer tous les fichiers dans le Bloc-notes).

Nom de fichier: Remplacer.bat (via dostips.com)

@Écho off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
REM BatchSubstitude - analyse un fichier ligne par ligne et remplace une sous-chaîne "
Syntaxe REM: BatchSubstitude.bat OldStr NewStr File
REM OldStr [in] - chaîne à remplacer
REM NewStr [in] - chaîne à remplacer par
REM File [in] - fichier à analyser
REM $ modifié 20100115
REM $ source http://www.dostips.com
si "% ~ 1" == "" findstr "^ ::" "% ~ f0" & GOTO: EOF
pour / f "jetons = 1, * delims =]" %% A dans ('"type% 3 | find / n / v" ""') do (
set "line = %% B"
si ligne définie (
ensemble d'appel "ligne = écho. %% ligne:% ~ 1 =% ~ 2 %%"
pour / f "delims =" %% X in ('"echo." %% line %% ""') do %% ~ X
) AUTRE écho.
)

___________________________

Nom de fichier: MainApp.bat


@Écho off
REM Auteur: seamonkey420
REM http://blogs.tech-recipes.com/seamonkey420
REM
REM 15/03/2010
REM Ce lot analyse et met à jour les clés de registre du module de dictée.
REM Voici ce que font les étapes:
REM 1. Exporte la clé de registre dans un fichier viewFolder.txt.
REM ADD REGISTRY ENTRY TO EXPORT (c'est-à-dire au format: HKEY_CURRENT_USER \ Control Panel \ Mouse)
REM 2. tape l'affichage du fichier, puis trouve toute entrée contenant "Oui" et remplace par "Non" et enregistre dans un nouveau fichier keys.txt
REM 3. Nous rappelons la version de registre requise dans le nouveau fichier reg
REM 4. Puis echo section que les valeurs vont sous
REM 5. Remplacez le nom du serveur des entrées à l'aide d'un fichier Replace.bat séparé, puis ajoute (avec la permission de www.dostips.com) au fichier newkeys.reg
REM 6. Enfin, les nouvelles entrées de registre dans le fichier newkeys.reg sont réimportées dans le registre.
REM 7. Enfin, tous les fichiers temporaires sont supprimés


set rkey = HKEY_CURRENT_USER \ Panneau de configuration \ Souris
set findv = "Oui"
set replacev = "Non"
set registryver = Editeur de registre Windows version 5.00
echo "Changer les valeurs du registre, veuillez patienter ..."
REG EXPORT "% rkey%" viewFolder.txt
tapez viewFolder.txt | find% findv%> keys.txt
echo% registryver%> newkeys.reg
echo [% rkey%] >> newkeys.reg
CALL Replace.bat% findv%% replacev% keys.txt >> newkeys.reg
reg import newkeys.reg
del / q newkeys.reg viewFolder.txt keys.txt
sortie

______________________

Pour utiliser cela, vous devrez éditer le fichier MainApp.bat (faites un clic droit dessus et cliquez sur Éditer, le Bloc-notes s'ouvrira)

En gros, MainApp.bat interroge une clé de registre que vous définissez dans la variable «set rkey =» (dans mon fichier de commandes, j'utilise deux paramètres de souris à titre d'exemple).

Ensuite, il exportera la clé et les sous-clés dans un fichier appelé viewFolder.txt.

Il utilise ensuite la commande FIND pour rechercher dans le fichier viewFolder.txt la valeur définie dans la variable «findv =» (dans mon fichier de commandes, Oui), puis exporter ces valeurs dans un nouveau fichier appelé keys.txt.

Nous créons ensuite notre fichier de registre qui sera réimporté avec les nouvelles valeurs en faisant écho à la version de registre requise dans un fichier appelé newkeys.reg.

Nous annexerons ensuite la clé de registre que nous avons recherchée sous le fichier newkeys.reg (dans mon fichier de commandes, la clé du panneau de configuration moue).

Nous utilisons maintenant le fichier Replace.bat pour rechercher la clé à remplacer, la remplacer par la nouvelle entrée de clé, puis ajouter ces données au fichier newkeys.reg.
Nous sommes donc prêts à réimporter le fichier de registre avec les nouvelles valeurs et à utiliser reg import pour le réimporter.
Enfin, nous nettoyons et supprimons les fichiers newkeys.reg, viewFolder.txt et keys.txt et quittons notre programme.

REMARQUES:
-Nécessite d'être un compte administrateur à exécuter ou de pouvoir s'exécuter avec des droits élevés (comme avec la plupart des choses basées sur le registre)
-Exécutez en tant qu'utilisateur système sécurisé via Novell Zenworks pour une exécution sur un ordinateur non administrateur et obtenez les clés appropriées s'il s'agit d'une clé CURRENT_USER.
-Mettez REM devant n'importe quelle ligne pour la remarquer et à son tour, évitez de la courir.
-Ajoutez une pause à la fin du fichier de commandes pour laisser la fenêtre d'invite de commande ouverte et remplacez @echo par @echo on (pour le débogage, les tests).
-Vous pouvez également utiliser d'autres variables système dans ce fichier de commandes.
-Travaille sur toute version de Windows XP et plus; Vista et Win7.