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

Résolu/Fermé
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020
-
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020
-
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

Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794
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.


“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020
8
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 ?
Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794
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".
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020
8
Ah d'accord.
Mais le script me dit que le fichier à été modifié alors que ce n'est pas le cas
Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794 >
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020

Au tout premier lancement c'est normal car le fichier qui stocke l'empreinte n'existe pas encore.
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020
8
Je l'ai lancé une dizaine de fois, toujours la même réponse !
Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794 >
Messages postés
171
Date d'inscription
samedi 12 octobre 2013
Statut
Membre
Dernière intervention
13 décembre 2020

Bizarre j'ai testé et re-testé ça fonctionne parfaitement chez moi.

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