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

VBScript Discussion :

Comparer les chaines de caractères de deux fichiers


Sujet :

VBScript

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Points : 83
    Points
    83
    Par défaut Comparer les chaines de caractères de deux fichiers
    Bonjour,

    J'aimerai créer un script capable de comparer deux fichiers et si il y a des concordances elles ressortent dans un troisième fichier. J'ai bien réussi mais je n'arrive pas à avoir de résultats précis.
    Ce script sert à comparer la liste des applications installés sur un PC par rapport à une liste des applications indésirables. Le résultat, vous l'avez deviné c'est de créer une liste contenant les applications indésirables installés sur le PC.

    J'ai essayé en batch avec findstr, et en VBS avec InStr ! (Voir code ci dessous) Le problème est lié aux espaces qui provoquent de faux positifs.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    ' Comparaison entre les applications installées et la liste des applications à supprimer
    Const ForReading = 1, ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFileRemove = objFSO.OpenTextFile("C:\uninstaller_list_include.txt", ForReading)
    Set objFileInstall = objFSO.OpenTextFile("C:\uninstaller_list_app_name.txt", ForReading)
     
    strRemove = objFileRemove.ReadAll
    objFileRemove.Close
     
    ' Lecture du fichier contenants les applications installées
    Do Until objFileInstall.AtEndOfStream
        strInstall = objFileInstall.ReadLine
        If InStr(strRemove,strInstall) > 0 then 
    '    Wscript.Echo "SUP 0"
        strDelete = strDelete & strInstall & vbCrLf
        End If
    Loop
     
    objFileInstall.Close
     
    'Wscript.Echo strRemove
    'Wscript.Echo strInstall
    Wscript.Echo strDelete
     
    Set objFile3 = objFSO.CreateTextFile("C:\uninstaller_list_remove.txt")
     
    objFile3.WriteLine strDelete
    objFile3.Close
    Si dans ma liste des applications à supprimer je met Google Toolbar et que dans ma liste des programmes installés je n'ai que Google , il me ressort Google comme positif.

    J'ai vu qu'il y avait beaucoup de sujet dans ce domaine, mais je ne m'en sort pas.

    Merci

    Source:
    http://blogs.technet.com/b/heyscript...ext-files.aspx

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 107
    Points : 16 633
    Points
    16 633
    Par défaut
    Salut

    N'y aurai t il pas inversion à la ligne 13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If InStr(strRemove, strInstall) > 0 Then '<---- ton code
    If InStr(strInstall, strRemove) > 0 Then ' remplacer par celui ci

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    Non le sens est bon : Je recherche les programmes à désinstaller dans la liste des programmes installés. Quand il y a une concordance, je ressort le nom du programme installé dans un fichier ! J'ai quand même fait le test mais il me ressort aucun résultat. Je continue mes recherches mais j'ai l'impression que je ne pourrai pas avoir le résultat souhaité avec la commande "InStr".

    Ou alors est il possible de comparer une chaîne exact, entouré de "" par exemple ?

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    Du coup j'ai mis des "" et une , .
    Exple: "montexte",

    Ça a résolu mon problème !

    Par contre un dictionnaire ne serait il pas plus efficace ?

    Merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/10/2012, 01h03
  2. Comparaison chaine de caractère dans deux fichiers différents
    Par ghostrider95 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 09/02/2011, 20h25
  3. Réponses: 6
    Dernier message: 15/05/2008, 15h20
  4. Comparer la chaine de caractère de deux cellules différentes
    Par idir.17 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/03/2007, 14h48
  5. Réponses: 3
    Dernier message: 21/06/2005, 16h18

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