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 :

Comparaison deux fichier TXT avec code d'action


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Comparaison deux fichier TXT avec code d'action
    Bonjour,

    Je suis un peu perdu je suis à la recherche de votre aide pour créer un script PowerShell permettant de comparer, extraire les modifications issues de deux fichier txt.
    En effet je reçois un fichier F1 nommé fichier_F1.txt à J+0 . J’ai un autre fichier F1 nommée fichier_F1_vieux à J-1.
    Je souhaiterais comparé les modifications du fichier_F1 et du fichier_F1_vieux et extraire les ajouts, modifications, suppression en fonction du fichier_vieux.
    L’extraction serait en .txt avec l’ajout d’une dernière colonne avec un code d’action 1=ajout 2=modification 3=suppression.

    Dans l’attente de vos lumières je vous remercie

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 224
    Points
    9 224
    Par défaut

    Source : https://serverfault.com/questions/55.../951843#951843
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    compare-object (get-content 'C:\temp\Test\File1.txt') (get-content 'C:\temp\Test\File2.txt') | format-table | Out-File 'C:\temp\Test\Comparaison.txt'
    Ou bien
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    diff (gc 'C:\temp\Test\File1.txt' | % -begin { $ln1=0 } -process { '{0,6}<<:{1}' -f ++$ln1,$_ }) (gc 'C:\temp\Test\File2.txt' | % -begin { $ln2=0 } -process { '{0,6}>>:{1}' -f ++$ln2,$_ }) -property { $_.substring(9) } -passthru | sort | Out-File 'C:\temp\Test\Comparaison.txt'

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Merci c'est exactement ça ! Enfin presque...

    J'ai évolué le script est presque bon comme suit :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    compare-object $(Get-Content "\Traitement F1\Fichier F1 à traiter\FichierF10.txt") $(Get-content "\Traitement F1\Fichier F1 d'archive\FichierF11.txt")| Sort-Object | Export-Csv "\Traitement F1\Fichier F1 épuré\Comparaison.csv" -NoTypeInformation -Delimiter ';'

    Comment puis-je supprimés les éléments en gras dans mon export csv

    "InputObject" "SideIndicator"
    "NOM;PRENOM;FONCTION"";"=>"

    Afin d'avoir un .csv

    NOM;PRENOM;FONCTION;=>
    NOM;PRENOM;FONCTION;<=

    Merci d'avance

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    J'ai donc trouvé voici pour ceux que sa intéresse :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    compare-object $(Get-Content "\Traitement F1\Fichier F1 à traiter\FichierF10.txt") $(Get-content "\Traitement F1\Fichier F1 d'archive\FichierF11.txt") | Sort-Object| ConvertTo-Csv -NoTypeInformation | % {$_.Replace('"','')} | Select-Object -Skip 1 | Out-File "\Traitement F1\Fichier F1 épuré\Comparaison.csv"

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 192
    Points : 5 774
    Points
    5 774
    Par défaut
    Je ferais comme ceci.
    Tu sais que si tu supprime les " tu obtiendra un csv pas forcement cohérent avec la norme (si ta ligne possède un espace ou une virgule par exemple)

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Compare-Object -ReferenceObject (Get-Content -Path "Traitement F1\Fichier F1 à traiter\FichierF10.txt") -DifferenceObject (Get-Content -Path "Traitement F1\Fichier F1 d'archive\FichierF11.txt") -IncludeEqual | Select-Object @{Name="Ligne";Expression={$_.InputObject}}, @{Name="Etat";Expression={$_.SideIndicator -replace "==", "Egal" -replace "=>", "Ajout" -replace "<=", "Suppression"}} | Export-Csv -Path "Traitement F1\Fichier F1 épuré\Comparaison.csv" -NoTypeInformation -Encoding Default

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2019
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Merci ericlm128 tu m'aide grandement car le problème peut ce produire.
    Par contre en réfléchissant finalement ce script ne répond pas vraiment à mon but final car je ne peut pas comparer les modifications entre le fichier_ancien et le fichier_nouveau comme le script ne gère pas d'ID unique pour chaque ligne j'ai fais un petit schéma pour vous faire comprendre mon script :

    Nom : fichierf1.PNG
Affichages : 2894
Taille : 40,0 Ko

Discussions similaires

  1. Code VBA afin de croiser deux fichiers excel avec un SI et un rechercher V
    Par rodriguez nzuzi dans le forum Général VBA
    Réponses: 1
    Dernier message: 12/12/2015, 01h16
  2. [PowerShell] Comparaison de caractere ou mot dans deux fichiers txt en powershell
    Par sanched dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 30/07/2015, 17h15
  3. [Python 3.X] Comparaison de deux fichiers txt avec une reponse IDENTIQUE: oui ou non
    Par pascaljqt dans le forum Général Python
    Réponses: 5
    Dernier message: 28/07/2015, 23h09
  4. Comparaison deux fichiers avec cobol
    Par Babylone159 dans le forum Cobol
    Réponses: 5
    Dernier message: 03/09/2012, 12h36
  5. comparaison de deux fichiers textes avec un script python
    Par zekruss dans le forum Général Python
    Réponses: 1
    Dernier message: 10/11/2009, 05h52

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