| ||||||||
Petit astucien | Bonjour, Le batch se compose de deux commandes : - un reg query pour récupérer dans un fichier toutes les clés "Uninstall" de la base de registres, - une commande FOR pour traiter ce fichier et créer un autre fichier contenant une partie des informations : dans le fichier issu du reg query j'ai des groupes de la forme :
Et dans le fichier de sortie, pour chaque groupe, je voudrais obtenir une ligne de la forme :
C'est-à-dire : nom_de_la_clé valeur_de_DisplayName. Voici le batch :
Le problème c'est que je ne récupère rien dans les variables $UninstallKey et ùDisplayName ! Et ce que je comprends encore moins c'est que j'ai un autre batch qui ressemble un peu à celui-ci (il récupère la valeur de InstallLocation pour une clé Uninstall particulière) et qui fonctionne :
Merci de votre aide. Bernard
| |||||||
Publicité | ||||||||
Petit astucien | Salut, essaie dans le script qui marche avec "%%A:~1"=="InstallLocation" pour voir si cela ne vient pas de ça. A+ | |||||||
![]() | Yo .o/ Je pense que le /s dans la commande reg query devrait être avant la redirection. Edit : Ha ben nan, j'ai rien dit, ça n'a pas l'air d'avoir d'influence... m'enfin ce serait quand même plus propre pour la relecture, je pense :hmm: Modifié par Constance le 15/09/2013 16:50 | |||||||
Petit astucien | Si passe pas essaie avec ça "%%A:~1%%"=="InstallLocation" pour voir si cela ne vient pas de ça. A+ | |||||||
![]() | ||||||||
Petit astucien | Bonjour,
Je viens de m'apercevoir tout à fait par hasard qu'il y avait des réponses. Je n'ai pas eu de mails d'alerte.
Je lis tout ça et je reviens vous voir.
Bernard
| |||||||
Petit astucien |
Eh ben, y marche plus
Pas mieux comme ça... Mais il semble qu'on ait une piste : le découpage du paramètre remplacable de la commande FOR (en l'occurrence %%A) pose problème. @Constance : J'ai jeté un coup d'oeil au script. À première vue ça ressemble à ce que je veux faire. S'il s'avère que je ne peux pas découper ma variable %%A je me plongerais dans cet exemple. Il faut que je vois de plus près comment s'installe et s'utilise l'instruction sed. Bernard
| |||||||
Petit astucien | Constance a écrit : J'ai récupéré le script. J'ai récupéré sed.exe (je l'ai mis dan le même dossier que le script, je verrai après les tests pour lui trouver un emplacement définitif, et si nécessaire le déclarer dans la variable PATH). Je n'ai pas utilisé les dépendances, apparemment sed.exe fonctionne sans (enfin... pour le script qui nous intéresse). J'ai lancé le script tel quel, sans changer une virgule. Malgré une flopée de messages d'erreur (notamment à chaque REG QUERY), bizarrement le script fonctionne, sauf un petit truc ... J'envoie des captures par "plis séparés", mon message était trop gros ! Bernard | |||||||
Petit astucien | Les messages d'erreur : et plus loin : | |||||||
Publicité | ||||||||
Petit astucien | Le fichier final (début) : Ce srait bien mieux comme ça Le fichier tmp : Bernard | |||||||
![]() | Re ^^ Hmm ben chez moi il donne un listing final correct du point de vue des sauts de ligne, c'est peut-être justement parce que tu n'as pas pris les dépendances que ça merdouille ? Ceci dit j'ai moi aussi pas mal de messages d'erreur... je vais y jeter un œil. Edit : je pense que ligne 11 il vaudrait mieux encadrer %%a avec des guillemets dans la commande REG QUERY (pour éviter le coup de la syntaxe incorrecte). Modifié par Constance le 17/09/2013 20:27 | |||||||
Petit astucien | J'ai récupéré les dépendances ici (fichier sed-4.2.1-dep.zip qui contient libint3.dll, regex2.dll et libconv2.dll) mais l'anomalie demeure dans le fichier final. J'ai aussi encadré la variable %%a comme tu le suggérais et ça a effectivement éliminé les problèmes de syntaxe. Il reste juste les messages causés par l'absence de la sous-clé DisplayName (une vongtaine) : Bernard | |||||||
Petit astucien | Pour être certain que sed.exe et ses dépendances étaient correctement installés j'ai téléchargé et exécuté le package d'installation sed-4.2.1-setup.exe mais le résultat final est identique. Bernard
| |||||||
Petit astucien | Constance a écrit : J'ai remplacé l'instruction :
par :
C'est moins élégant Il y a un cas qui n'est pas prévu par le script, c'est quand le type de DisplayName est REG_EXPAND_SZ. Ca donne ça :
C'est le seul cas sur 293 clés ! On se demande pourquoi ScanSoft a fait comme ça ! Je ne sais pas si on peut prévoir ça dans le sed qui recherche REG_SZ ? Comme c'est un cas unique j'ai rectifié à la mano. En tout cas, merci infiniment pour ton script. Bernard
| |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|