Vérifier l'intégrité des données d'un fichier txt

Résolu
idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   -  
idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aurais besoin d'aide pour écrire un petit script pour vérifier l'intégrité du texte d'un fichier.

J'ai un fichier "Z:\Projet.txt" qui contient "blabla!"
Je lance manuellement le script, afin de savoir si le fichier à changé.
Seul son contenu m'intéresse.
Si c'est le cas, j'afficher par exemple "Le fichier est inchangé", sinon "Le contenu du fichier à été modifier".

Pouvez vous m'aider svp je suis totalement débutant en scripting !

2 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    Bonjour,

    Voilà un exemple fonctionnel :

    @echo off
    setlocal enableextensions enabledelayedexpansion
    chcp 28591 >nul

    set target=Z:\Projet.txt
    set cookie=%TMP%\fingerprint123456789.txt

    if not exist "%cookie%" (type NUL >"%cookie%")

    for /f "delims=" %%A in ('certutil -hashfile %target% SHA256 ^| find /v ":"') do set new_hash=%%A

    >nul findstr /lic:"!new_hash!" "%cookie%" && echo Le fichier est inchangé || echo Le contenu du fichier a été modifié

    echo.!new_hash!>"%cookie%"

    pause

    exit


    Le principe de fonctionnement : on calcule le hash (= l'empreinte) du fichier cible à l'aide la commande CERTUTIL, ensuite on compare ce hash avec le précédent hash stocké dans un fichier texte quelconque. On n'oublie pas de mettre à jour le fichier texte avec le nouveau hash.

    1
  2. idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   9
     
    Merci infiniment !

    Du coup je dois créer un fichier et stocker le résultat de celui-ci dedans pour comparer le résultat lors d'une nouvelle exécution ?
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Oui c'est déjà prévu dans l'exemple fourni, c'est le fichier qui est représenté par la variable appelée "cookie".
      0
    2. idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   9
       
      Ah d'accord.
      Mais le script me dit que le fichier à été modifié alors que ce n'est pas le cas
      0
    3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention  
       
      Au tout premier lancement c'est normal car le fichier qui stocke l'empreinte n'existe pas encore.
      0
    4. idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention   9
       
      Je l'ai lancé une dizaine de fois, toujours la même réponse !
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > idiart33 Messages postés 157 Date d'inscription   Statut Membre Dernière intervention  
       
      Bizarre j'ai testé et re-testé ça fonctionne parfaitement chez moi.

      Est-ce que tu aurais modifié quelque chose dans le script ?
      0