IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script pour les clés de registre [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 69
    Par défaut Script pour les clés de registre
    Bonjour,
    j'essaye d'écrire un script pour supprimer des clés de registre mais je bloque sur une boucle imbriquée.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    REM la variable à modifier selon la recherche.
    set str=test
    REM TODO str en %1:~1,-1
    
    rem parce que c'était une clé avec peu de valeur str=test, mais définit le point de départ de la recherche
    set key=HKLM\SOFTWARE\Classes\Interface
    
    for /f "tokens=1" %%i in ('reg query %key% /s /f %str%') do ( 
    	for /f "tokens=1" %%p in ('echo '%%i' ^| findstr "%key:~4%"') do (
    		rem si %%p:~4 != key:~4
    			rem set ckey=%%p
    			rem reg export %ckey%%%i backup.reg
    			rem reg delete %ckey%%%i
    		rem sinon ckey=%%p
    	)
    )
    L'idée est donc de faire une recherche dans la base de registre à partir d'une chaine.
    A partir de ce résultat, si la ligne est un chemin, mettre à jour ckey puis exporter la clé avant de la supprimer.

    Sauf que je ne parviens pas à récupérer le chemin de la clé pour pouvoir l'exporter.

    J'ai rajouté quelques commentaires pour que ce soit un peu plus clair sur le code.

    Si une bonne âme voulait bien me donner un coup de pouce. ^^'

  2. #2
    Membre éprouvé

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2011
    Messages : 104
    Par défaut
    Bonjour,


    je vois plusieurs erreurs dans ton code:

    si %%p:~4 != key:~4 = if "!variable1:~4!"=="!key:~4!"

    tu dois en plus activer les expansion de variable avant ta boucle pour pouvoir traiter des variables dans celle-ci (setlocal enabledelayedexpansion).
    tu dois aussi definir variable1=%%p .

    test ceci déjà, sa devrait te faire avancer.

    fait quelques recherches sur internet, tu devrait avoir toutes les réponses pour construire ton batch et le comprendre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 69
    Par défaut
    Merci pour le test et le coup de la variable expansée.
    J'étais rapidement passé dessus, car ce que je cherche avant tout pour l'instant

    Mon soucis vient de %key% qui est modifié à l'exécution.
    HKLM étant devenu HKEY_LOCAL_MACHINE.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script pour les profil itinerant?
    Par delphino7 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 31/03/2008, 13h48
  2. [REQUETE] Additionner un champ pour les clés primaires identiques
    Par skeut dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/03/2008, 23h13
  3. Script pour les infos système
    Par soulhouf dans le forum Linux
    Réponses: 14
    Dernier message: 12/04/2006, 16h03
  4. Questions sur les clés de registre
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 30/04/2005, 19h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo