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 :

[Batch] Somme MD5 en CMD


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai Avatar de SebioHazard
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Points : 17
    Points
    17
    Par défaut [Batch] Somme MD5 en CMD
    Bonsoir à tous !

    Je ne connais vraiment pas grand chose aux fichiers .bat & ma question est la suivante. J'utilise cette commande très pratique pour générer la somme MD5 de fichiers dans un répertoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for %F in (*) do @certutil -hashfile "%F" md5
    Dans une invite de commande celle-ci fonctionne très bien, mais pour éviter de l'écrire à chaque fois, j'ai créé un fichier .bat dont voici le contenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd
    for %F in (*) do @certutil -hashfile "%F" md5
    Mais ça ne fonctionne pas du tout pourquoi ?! Où est l'erreur ?!

    Merci salutations !

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Pour utiliser des méta-variables dans un fichier .bat, le signe pourcentage (%) doit être échappé en utilisant deux signes pourcentage consécutifs (%%).

    Cela signifie que la méta-variable %F dans votre exemple devrait être modifiée en %%F pour être correctement interprétée par la commande de script.

    Le code corrigé ressemblerait à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for %%F in (*) do @certutil -hashfile "%%F" md5
    Escape Characters

  3. #3
    Membre à l'essai Avatar de SebioHazard
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Hello merci pour votre réponse !

    1. Alors effectivement une fenêtre d'invite de commande s'ouvre mais se ferme aussitôt que la commande est terminée, c'est donc inexploitable ?!

    2. Dans l'absolu j'aimerais que toutes les sommes MD5 soient enregistrées dans un fichier .txt c'est possible ?

    Merci salutations !

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Certutil_MD5hashes.bat
    Testez ce :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    Title Get MD5 HASHES
    Set "MD5Hashes=%~dp0md5hashes.txt"
    If Exist "%MD5Hashes%" Del "%MD5Hashes%"
    SetLocal EnableDelayedExpansion
    for %%F in (*) do (
        for /f "skip=1 delims=" %%H in ('CertUtil -hashfile "%%~F" MD5 ^| findstr /i /v "CertUtil"') do set "H=%%H"
            echo %%F:!H: =! >> "%MD5Hashes%"
    )
    EndLocal
    Start "" /MAX "%MD5Hashes%"

  5. #5
    Membre à l'essai Avatar de SebioHazard
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Extraordinaire merci par contre serait-il possible d'avoir la somme MD5 de chaque fichier à la ligne (au-dessous du nom du fichier) car là ce n'est pas très lisible:

    1994-03 - 9FEB69B3 - Power Mac 6100 & 7100 & 8100.ROM:b40998471e33d802b350f699127e36df
    1994-04 - 9C7C98F7 - Workgroup Server 9150 80MHz.ROM:992b36209d478fa5cc1e7f3a3a462c18
    1995-01 - 9B7A3AAD - Power Mac 7100 (newer).ROM:6355d8c6841591e284853f878b99720a
    1995-04 - 63ABFD3F - Power Mac & Performa 5200,5300,6200,6300.ROM:f841c66c2e94bf1872959fed0d69cc65
    1995-04 - 9B037F6F - Workgroup Server 9150 120MHz.ROM:f08ad7ba1d8435ecfa24282aab1e0eb0
    1995-08 - 83C54F75 - Powerbook 2300 & PB5x0 PPC Upgrade.ROM:d42c0a7386a345a008883be07beb0a64
    1995-08 - 9630C68B - Power Mac 7200&7500&8500&9500 v2.ROM:2623a0c438045ea04d2cc67310c97743
    1995-08 - 96CD923D - Power Mac 7200&7500&8500&9500 v1.ROM:dfebb8fdad4124e02608429d98bf349b
    1996-08 - 6F5724C0 - PowerMac, Performa 6400.ROM:cdc2b21a8991193b856e5a92c6df5c06
    1996-10 - 83A21950 - PowerBook 1400, 1400cs.ROM:d78e3715e0dd30cd6174bdda747222eb
    1997-02 - 6E92FE08 - Power Mac 6500.ROM:670f3d04b8844cf89aae4391398d4b5c
    1997-02 - 960E4BE9 - Power Mac 7300 & 7600 & 8600 & 9600 (v1).ROM:edcf3422d712f61f83c07efc2401cbb8
    1997-02 - 960FC647 - Power Mac 8600 & 9600 (v2).ROM:88d7bec4daa28028c1fd311cf89ef8ab
    1997-11 - 78F57389 - Power Mac G3 (v3).ROM:616d792ee6e2877c5c8faf30b6c56fe8
    1997-11 - 79D68D63 - Power Mac G3 desktop.ROM:b8612cc39a56d141feade9dc6361ba20
    1998-03 - CBB01212 - PowerBook G3 Wallstreet.ROM:738ae2b8394d2fe9cd3d39012458e756
    1998-08 - B46FFB63 - PowerBook G3 Wallstreet PDQ.ROM:01a80c4452c8cdf385e11bd973b44f58
    Genre comme ça:

    1994-03 - 9FEB69B3 - Power Mac 6100 & 7100 & 8100.ROM
    b40998471e33d802b350f699127e36df
    1994-04 - 9C7C98F7 - Workgroup Server 9150 80MHz.ROM
    992b36209d478fa5cc1e7f3a3a462c18
    1995-01 - 9B7A3AAD - Power Mac 7100 (newer).ROM
    6355d8c6841591e284853f878b99720a
    1995-04 - 63ABFD3F - Power Mac & Performa 5200,5300,6200,6300.ROM
    f841c66c2e94bf1872959fed0d69cc65
    1995-04 - 9B037F6F - Workgroup Server 9150 120MHz.ROM
    f08ad7ba1d8435ecfa24282aab1e0eb0
    1995-08 - 83C54F75 - Powerbook 2300 & PB5x0 PPC Upgrade.ROM
    d42c0a7386a345a008883be07beb0a64
    1995-08 - 9630C68B - Power Mac 7200&7500&8500&9500 v2.ROM
    2623a0c438045ea04d2cc67310c97743
    1995-08 - 96CD923D - Power Mac 7200&7500&8500&9500 v1.ROM
    dfebb8fdad4124e02608429d98bf349b
    1996-08 - 6F5724C0 - PowerMac, Performa 6400.ROM
    cdc2b21a8991193b856e5a92c6df5c06
    1996-10 - 83A21950 - PowerBook 1400, 1400cs.ROM
    d78e3715e0dd30cd6174bdda747222eb
    1997-02 - 6E92FE08 - Power Mac 6500.ROM
    670f3d04b8844cf89aae4391398d4b5c
    1997-02 - 960E4BE9 - Power Mac 7300 & 7600 & 8600 & 9600 (v1).ROM
    edcf3422d712f61f83c07efc2401cbb8
    1997-02 - 960FC647 - Power Mac 8600 & 9600 (v2).ROM
    88d7bec4daa28028c1fd311cf89ef8ab
    1997-11 - 78F57389 - Power Mac G3 (v3).ROM
    616d792ee6e2877c5c8faf30b6c56fe8
    1997-11 - 79D68D63 - Power Mac G3 desktop.ROM
    b8612cc39a56d141feade9dc6361ba20
    1998-03 - CBB01212 - PowerBook G3 Wallstreet.ROM
    738ae2b8394d2fe9cd3d39012458e756
    1998-08 - B46FFB63 - PowerBook G3 Wallstreet PDQ.ROM
    01a80c4452c8cdf385e11bd973b44f58
    Merci beaucoup

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Get-MD5-Hash.bat

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    Title Get MD5 HASHES
    Set "MD5Hashes=%~dp0md5hashes.txt"
    If Exist "%MD5Hashes%" Del "%MD5Hashes%"
    SetLocal EnableDelayedExpansion
    for %%F in (*) do (
        for /f "skip=1 delims=" %%H in ('CertUtil -hashfile "%%~F" MD5 ^| findstr /i /v "CertUtil"') do set "H=%%H"
            echo %%F >> "%MD5Hashes%"
            echo !H: =! >> "%MD5Hashes%"
    )
    EndLocal
    Start "" /MAX "%MD5Hashes%"

  7. #7
    Membre à l'essai Avatar de SebioHazard
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Points : 17
    Points
    17
    Par défaut


    Merci beaucoup c'est gentil, par contre comme je ne suis pas programmeur je ne comprends rien à cette commande ? Y a-t-il un moyen d'apprendre ?


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Explication détaillée de ce script Batch
    Citation Envoyé par SebioHazard Voir le message
    Merci beaucoup, c'est gentil, par contre comme je ne suis pas programmeur, je ne comprends rien à cette commande ? Y a-t-il un moyen d'apprendre ?
    Explication détaillée de ce script Batch :
    Ce code est un script en batch pour Windows, il permet de générer les empreintes (hashes) MD5 des fichiers dans le répertoire actuel.
    Les étapes sont les suivantes :


    1. "@echo off" signifie que les commandes du script ne s'afficheront pas sur l'écran.
    2. "Title Get MD5 Hashes" définit le titre de la fenêtre de commande.
    3. "Set "MD5Hashes=%~dp0md5hashes.txt"" définit le nom et le chemin du fichier texte qui stockera les empreintes MD5.
    4. "If Exist "%MD5Hashes%" Del "%MD5Hashes%"" vérifie si le fichier existe déjà et le supprime s'il existe.
    5. "SetLocal EnableDelayedExpansion" active la désactivation différée de la variable.
    6. "for %%F in (*) do" effectue une boucle pour tous les fichiers dans le répertoire actuel.
    7. "for /f "skip=1 delims=" %%H in ('CertUtil -hashfile "%%~F" MD5 ^| findstr /i /v "CertUtil"') do set "H=%%H"" utilise la commande "CertUtil" pour générer l'empreinte MD5 pour chaque fichier. La commande "findstr" filtre les résultats pour ne conserver que l'empreinte.
    8. "echo %%F >> "%MD5Hashes%"" ajoute le nom de chaque fichier au fichier de sortie.
    9. "echo !H: =! >> "%MD5Hashes%"" ajoute l'empreinte MD5 pour chaque fichier au fichier de sortie.
    10. "EndLocal" termine la désactivation différée de la variable.
    11. "Start "" /MAX "%MD5Hashes%"" ouvre le fichier de sortie avec sa taille maximale avec l'application associée.


    Le résultat final est un fichier texte qui contient une liste de tous les noms de fichier et de leurs empreintes MD5 respectives.

    Enfin, Si votre problème est bien résolu, alors n'oubliez pas de le marquer comme

  9. #9
    Membre à l'essai Avatar de SebioHazard
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Points : 17
    Points
    17
    Par défaut


    Merci beaucoup pour votre aide & vos explications.

    Oui je peux clore le sujet en espérant que cela rende service aussi à d'autres

    Comment je fais pour mettre résolu ?!

    Salutations !

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par SebioHazard Voir le message
    Comment je fais pour mettre résolu ?!
    Juste, il faut cliquer sur le bouton en bas

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2015, 15h55
  2. Calcul de la somme md5
    Par Olivier Regnier dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 27/08/2011, 19h44
  3. Réponses: 2
    Dernier message: 14/10/2008, 20h37
  4. [C#2.0] Calcul d'une somme MD5 en plusieurs fois
    Par mister3957 dans le forum C#
    Réponses: 2
    Dernier message: 06/01/2007, 09h16
  5. [CR ?] Somme d'heure sous Crystal ?
    Par Peter PARKER dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/04/2003, 16h24

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