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 :

Limiter la boucle For /F à la première occurrence trouvée [Batch]


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
    Chef de projet en SSII
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut Limiter la boucle For /F à la première occurrence trouvée
    Bonjour à tous,

    sauriez-vous me dire comment arrêter ma boucle à la première occurrence trouvée .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "tokens=* delims=" %%a in ('type %rep2%Tools\AV\Log\scanreport.txt^| Find /i "Infected files: 0"') do echo( ^<center^>^<b^>RÉSULTAT DE L'ANALYSE : AUCUNE MENACE DETECTÉE ^</b^>^</center^>
    for /f "tokens=* delims=" %%i in ('type %rep2%Tools\AV\Log\scanreport.txt^| Find "FOUND"') do if %%i NEQ 0 echo( ^<center^>^<b^>RÉSULTAT DE L'ANALYSE : MENACE DETECTÉE ^</b^>^</center^>
    La première boucle m'affiche bien le message, la seconde m'affiche autant de fois le message qu'il trouve le mot "FOUND" dans mon texte. Or, j'aimerai n'afficher qu'une seule fois ce message.

    Une idée ???

    Merci par avance de votre aide.

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Pouvez vous nous joindre le fichier scanreport ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Bonjour,

    oui bien sûr, vous le trouverez en pièce jointe.

    (j'ai oublié de préciser que mon script alimente une page html)

    Bonne journée
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Bonsoir,

    en fin de compte j'ai trouvé une solution qui fonctionne, en utilisant des variables comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    for /f %%j in ('type %rep2%Tools\AV\Log\scanreport.txt^| Find /c "Infected files: 0"') do set virusok=%%j
    for /f %%k in ('type %rep2%Tools\AV\Log\scanreport.txt^| Find /c "FOUND"') do set virusko=%%k
    if %virusok%==1 (
    echo(	^<hr color="blue" /^>
    echo( ^<center^>^<b^>^<font color="blue"^>RÉSULTAT DE L'ANALYSE : AUCUNE MENACE DETECTÉE ^</font^>^</b^>^</center^>
    echo(	^<hr color="blue" /^>
    echo(	^<br /^>^<br /^>
    )>>%rep2%Tools\Batch\scanreport.html
    if %virusko% NEQ 0 (
    echo(	^<hr color="red" /^>
    echo( ^<center^>^<b^>^<font color="red"^>RÉSULTAT DE L'ANALYSE : MENACE DETECTÉE ^</font^>^</b^>^</center^>
    echo(	^<hr color="red" /^>
    echo(	^<br /^>^<br /^>
    )>>%rep2%Tools\Batch\scanreport.html
    C'est certes pas très "propre" mais fonctionnel.

    Si ça peut servir à quelqu'un ;-)

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @echo off
    Set "ScanReportTxt=%~dp0scanreport.txt"
    Set "ScanReportHTML=%~dp0scanreport.html"
    If exist "%ScanReportHTML%" Del "%ScanReportHTML%"
    for /f %%j in ('type "%ScanReportTxt%" ^| Find /c "Infected files: 0"') do set "virusok=%%j"
    for /f %%k in ('type "%ScanReportTxt%" ^| Find /c "FOUND"') do set "virusko=%%k"
    if "%virusok%" NEQ "0" (
    echo(    ^<hr color="Green" /^>
    echo( ^<center^>^<b^>^<font color="Green"^>RÉSULTAT DE L'ANALYSE : AUCUNE MENACE DETECTÉE ^</font^>^</b^>^</center^>
    echo(    ^<hr color="Green" /^>
    echo(    ^<br /^>^<br /^>
    )>>"%ScanReportHTML%"
    if "%virusko%" NEQ "0" (
    echo(    ^<hr color="red" /^>
    echo( ^<center^>^<b^>^<font color="red"^>RÉSULTAT DE L'ANALYSE : MENACE DETECTÉE ^</font^>^</b^>^</center^>
    echo(    ^<hr color="red" /^>
    echo(    ^<br /^>^<br /^>
    )>>"%ScanReportHTML%"
    Start "" "%ScanReportHTML%"

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

Discussions similaires

  1. recupérer n-1 pour la première ligne-boucle for
    Par magictol53 dans le forum MATLAB
    Réponses: 2
    Dernier message: 01/11/2013, 16h41
  2. Attribution d'une valeur lors de la première boucle For
    Par Neoblackbird dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/05/2013, 07h24
  3. Linux, boucle for qui s'arrête : limite mémoire ?
    Par ticad dans le forum Langage
    Réponses: 3
    Dernier message: 18/01/2012, 14h24
  4. utilisation de la STL pour limiter ma boucle for
    Par salseropom dans le forum C++
    Réponses: 5
    Dernier message: 06/02/2010, 14h03
  5. [Débutant] Modifier la limite d'une boucle For dynamiquement
    Par seiryujay dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/12/2006, 18h45

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