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 :

Afficher les différences de deux fichiers [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut Afficher les différences de deux fichiers
    Bonjour,

    J'ai 2 fichiers texte à comparer.
    Ils contiennent ce genre de chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    *** Le 19/12/2013 (Semaine : 51) *** 
    GRAD    CR Val-de-France  
    GRAD    CR Touraine-Poitou  
    GRAD    CR Toulouse  
    ANNE    CR Sud-Miditerranée  
    ANNE    CR Normandie  
    ANNE    CR Nord-Est
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    *** Le 18/12/2013 (Semaine : 50) *** 
    GRAD    CR Val-de-France  
    GRAD    CR Touraine-Poitou  
    GRAD    CR Sud-Miditerranée  
    ANNE    CR Toulouse  
    ANNE    CR Normandie  
    ANNE    CR Nord-Est
    Entre les 2 fichier on voit que la différence est outre la date Toulouse et Sud-Miditerranée ont étaient modifié (GRAD et ANNE).

    Je souhaiterai inscrire dans un fichier résultat ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    *** Le 19/12/2013 (Semaine : 51) ***
    GRAD    CR Toulouse  
    ANNE    CR Sud-Miditerranée  
    
    *** Le 18/12/2013 (Semaine : 50) *** 
    GRAD    CR Sud-Miditerranée  
    ANNE    CR Toulouse
    Afin de pouvoir relever les modifications.

    La commande FC n'est pas satisfaisante puisqu'elle me renvoi comme modification les lignes qui ont bougées en plus du reste.
    Quant à des boucles for, je ne m'en sort pas.

    J'ai oublié de préciser :
    Il faudrait que ça soit uniquement en batch (ou en passant par un vbs mais intégré au batch, genre comme pour coloriser le texte) car il n'y a pas (ou presque ) de possibilité d'installer de programme externe.
    Powershell n'est pas implémenté, il s'agit de poste sous windows XP SP3.


    J'aurai donc besoin de votre aide et vos avis.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut [HTA] File2Compare: Comparaison de deux Fichiers ligne par ligne

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    Bonsoir,

    Je n'ai pas essayé en Batch, étant plutôt fan du Powershell. Essayer cette commande PowerShell en la modifiant pour déclarer le chemin des 2 fichiers à comparer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compare-Object $(Get-Content doc1.txt) $(Get-Content doc2.txt)
    Avec les même exemples que vous citez, j'obtiens ceci :



    Il est aussi possible de rediriger ce résultat vers un fichier texte, et d'ouvrir automatiquement celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Compare-Object $(Get-Content doc1.txt) $(Get-Content doc2.txt) > result.txt
    invoke-item result.txt
    Pour les variantes, la syntaxe et l'explication du "Sideindicator', lisez ceci :
    http://technet.microsoft.com/en-us/l.../ee156812.aspx

    Si cela ne vous convient pas, n'hésitez pas à revenir vers nous.

    Bien à vous,

  4. #4
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    Bonsoir,

    Tout d'abord, merci bien pour vos réponses.

    J'ai oublié de préciser :
    Il faudrait que ça soit uniquement en batch (ou en passant par un vbs mais intégré au batch, genre comme pour coloriser le texte) car il n'y a pas (ou presque ) de possibilité d'installer de programme externe.
    Je viens de tester, powershell n'est pas implémenté, il s'agit de poste sous windows XP SP3

  5. #5
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut tout le monde

    Voici une petite astuce avec findstr (donc 100% batch) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /iv /g:fichier_1.txt fichier_2.txt
    Je vous laisse affiner pour le reste...

  6. #6
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    Salut à tous,

    J'avais oublié l'option v de findstr, je testerai ça demain quand je serait au taf.

    Merci Minesota pour l'astuce en tout cas, ça me paraît prometteur.


    A+

  7. #7
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    Bonjour,

    La commande de Minesota ne semble fonctionner que si des lignes sont manquantes dans l'un des fichiers.

    En rajoutant l'option B cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FINDSTR /I /V /B /G:CR_Repartition_50.txt CR_Repartition_51.txt
    Je vais rajouter une ligne avec forfile pour récupérer la dernière occurrence des fichiers de répartition (c'est un script qui sera hebdomadaire)

    Merci de votre aide à tous.

  8. #8
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Pour avoir la sortie que tu souhaites il faut le faire en deux fois...
    mais développe tes deux premières phrases, c'est pas clair...

    Si tu rajoutes un paramètre /b c'est que le formatage de tes exemples n'est pas suffisamment représentatif de celui de tes fichiers réels, dans ce cas, il serait peut-être utile de considérer les expressions régulières.

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

Discussions similaires

  1. extraire les différences entre deux fichiers xml en python
    Par princessita dans le forum Général Python
    Réponses: 4
    Dernier message: 17/02/2014, 00h09
  2. Réponses: 9
    Dernier message: 12/07/2011, 17h25
  3. Outils sur les différences entre deux fichiers XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 19
    Dernier message: 21/07/2008, 15h21
  4. Réponses: 4
    Dernier message: 16/04/2008, 11h12

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