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

Résolu/Fermé
idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020 - 13 déc. 2020 à 16:55
idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020 - 13 déc. 2020 à 21:26
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 !
A voir également:

2 réponses

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 13 déc. 2020 à 18:40
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
idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020 9
13 déc. 2020 à 19:13
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
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 13 déc. 2020 à 19:22
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
idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020 9
13 déc. 2020 à 20:02
Ah d'accord.
Mais le script me dit que le fichier à été modifié alors que ce n'est pas le cas
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020
13 déc. 2020 à 20:04
Au tout premier lancement c'est normal car le fichier qui stocke l'empreinte n'existe pas encore.
0
idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020 9
13 déc. 2020 à 20:06
Je l'ai lancé une dizaine de fois, toujours la même réponse !
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > idiart33 Messages postés 171 Date d'inscription samedi 12 octobre 2013 Statut Membre Dernière intervention 13 décembre 2020
13 déc. 2020 à 20:09
Bizarre j'ai testé et re-testé ça fonctionne parfaitement chez moi.

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