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 :

Récupéré dans un fichier texte valeur supérieur à X [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Par défaut Récupéré dans un fichier texte valeur supérieur à X
    Bonjour,

    J'aimerais savoir si c'est possible de crée un batch pour récupéré toute les valeurs supérieur à X.

    Je m'explique j'ai un batch qui lance un ping pendant X temps, puis je crée un log et un résultat log, dans le résultat log j'aimerais qu'il me donne toutes les valeurs supérieur ou égale à 5ms par exemple, j'ai réussi a faire pour des valeurs fixe.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    @echo off
    Echo ###############
    Echo.
    Echo.
    set /p Client=Nom du poste:
    Echo.
    set /p VAR=IP de la cible ?
    Echo.
     
    :lancement
    Echo Cr‚ation du fichier %client%_vers_%var%.log
    set addr=%VAR%
    tracert %addr% >>%client%_vers_%var%.log
    set serie=1
     
    :debut
    cls
    date /t >>%client%_vers_%var%.log
    time /t >>%client%_vers_%var%.log
    if %serie%==2 goto fin
    cls
    Date /t
    time /t
    echo serie %serie% sur 2
    ping %addr% -n 30 >>%client%_vers_%var%.log
    set /A serie=%serie%+1
    set serie 
    goto debut
     
     
    :fin
    for /F "tokens=1,2* delims=: " %%A in ('find /C "D‚lai d'attente" %client%_vers_%var%.log') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences Delai depasse: %%C >>Resultat_%client%_vers_%var%.log
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "Impossible" %client%_vers_%var%.log') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences impossible de joindre: %%C >>Resultat_%client%_vers_%var%.log
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "1ms TTL" %client%_vers_%var%.log') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences en dessous de 1 ms: %%C >>Resultat_%client%_vers_%var%.log
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "1 ms TTL" %client%_vers_%var%.log') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences 1 ms: %%C >>Resultat_%client%_vers_%var%.log
        )
    )

    Merci d'avance de votre aide en vous souhaitant également une bonne soirée.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Exemple simple. Je n'ai pas pu tester avec des ping supérieur à 999.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
     
    set /a num=0
    FOR /F "tokens=7 delims== " %%a IN ('findstr "TTL=" "ping.txt"') DO if %%a GTR 5 set /a num+=1
    echo Nombre d'occurences au dessus de 5 ms: %num%
     
    pause

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Par défaut
    Bonjour,

    je te remercie de ton aide par contre j'ai du faire une erreur mais quand je tape ton code à la suite du mien, dans résultat j'ai

    Nombre d'occurences au dessous de 1 ms: 10
    Nombre d'occurences au dessus de 2 ms: 10

    Alors que tout les ping sont inférieur à 1ms.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    @echo off
    SET RepName=%date:~0,2%-%date:~3,2%-%date:~6,4%
    Echo.
    Echo.
    set /p Client=Nom du poste:
    Echo.
    set /p VAR=IP de la cible ?
    Echo.
     
    :lancement
    Echo Création de C:\Superping %RepName%\%client%_vers_%var%.log
    mkdir "C:\Superping %RepName%\"
    set addr=%VAR%
    tracert %addr% >>"c:\Superping %RepName%\%client%_vers_%var%.log"
    set serie=1
     
    :debut
    cls
    date /t >>"c:\Superping %RepName%\%client%_vers_%var%.log"
    time /t >>"c:\Superping %RepName%\%client%_vers_%var%.log"
    if %serie%==2 goto fin
    cls
    Date /t
    time /t
    echo serie %serie% sur 500
    ping %addr% -n 10 >>"c:\Superping %RepName%\%client%_vers_%var%.log"
    set /A serie=%serie%+1
    set serie 
    goto debut
     
     
    :fin
    for /F "tokens=1,2* delims=: " %%A in ('find /C "Délai d'attente" "c:\Superping %RepName%\%client%_vers_%var%.log"') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences dÚlai d'attente dÚpassÚ: %%C >>"c:\Superping %RepName%\Resultat_%client%_vers_%var%.log"
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "Impossible de joindre" "c:\Superping %RepName%\%client%_vers_%var%.log"') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences impossible de joindre l'h¶te: %%C >>"c:\Superping %RepName%\Resultat_%client%_vers_%var%.log"
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "1ms TTL" "c:\Superping %RepName%\%client%_vers_%var%.log"') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences au dessous de 1 ms: %%C >>"c:\Superping %RepName%\Resultat_%client%_vers_%var%.log"
        )
    )
     
    for /F "tokens=1,2* delims=: " %%A in ('find /C "1 ms TTL" "c:\Superping %RepName%\%client%_vers_%var%.log"') DO (
        if %%C GTR 0 (
            echo Nombre d'occurences Úgale Ó 1 ms: %%C >>"c:\Superping %RepName%\Resultat_%client%_vers_%var%.log"
        )
    )
    set /a num=0
    FOR /F "tokens=7 delims== " %%a IN ('findstr "TTL=" "c:\Superping %RepName%\%client%_vers_%var%.log"') DO if %%a GTR 2 set /a num+=1
    echo Nombre d'occurences au dessus de 2 ms: %num% >>"c:\Superping %RepName%\Resultat_%client%_vers_%var%.log"

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je demande à voir le fichier "c:\Superping %RepName%\%client%_vers_%var%.log"

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Par défaut
    Voici les deux fichier :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    D‚termination de l'itin‚raire vers XXXXXX.fr [XX.XX.XX.XX]
    avec un maximum de 30 sautsÿ:
    
      1    <1 ms    <1 ms    <1 ms  XXXXXX.fr [XX.XX.XX.XX]
    
    Itin‚raire d‚termin‚.
    29/03/2019 
    09:38
    
    Envoi d'une requˆte 'ping' sur XXXXXX.fr [XX.XX.XX.XX] avec 32 octets de donn‚esÿ:
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    R‚ponse de XX.XX.XX.XXÿ: octets=32 temps<1ms TTL=128
    
    Statistiques Ping pour XX.XX.XX.XX:
        Paquetsÿ: envoy‚s = 10, re‡us = 10, perdus = 0 (perte 0%),
    Dur‚e approximative des boucles en millisecondes :
        Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
    29/03/2019 
    09:38
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nombre d'occurences au dessus de 2 ms: 10

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Oui quel galère ce batch

    Essai ceci :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set /a num=0
    for /F "tokens=7 delims==^<^> " %%a in ('findstr "TTL=" "test.txt"') DO (
    	set vartmp=%%a
    	set /a vartmp=!vartmp:ms=!
    	if !vartmp! GTR 2 set /a num+=1
    )
     
    echo %num%
     
    pause

    Ps : C'est normal les caractères bizarres ? ÿ

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Extraction de chaine en Powershell (c'est bien plus robuste) :

    Compte inférieur à 1
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    @(Select-String -Path ".\test.txt" -Pattern "temps<1ms TTL=").Count

    Compte "Délai d'attente"
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    @(Select-String -Path ".\test.txt" -Pattern "Délai d'attente").Count

    Compte "supérieur à 5"
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    @(Select-String -Path ".\test.txt" -Pattern '.*temps.([\d]+)ms TTL=.*$' | Where-Object {[int]($_.Line -Replace '.*temps.([\d]+)ms TTL=.*$', '$1') -gt 5}).Count

    Sinon, il vaut mieux directement utiliser la commande Test-Connection
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $test = Test-Connection -ComputerName "www.voila.fr" -Count 10
    @($test | Where-Object {$_.ResponseTime -gt 5}).Count
    @($test | Where-Object {$_.ResponseTime -lt 2}).Count

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 49
    Par défaut
    Bonjour, désolé du délai de reponse et merci de ton aide


    Citation Envoyé par ericlm128 Voir le message
    Ps : C'est normal les caractères bizarres ? ÿ
    Pour les caractères bizarres oui c'est normale c'est une fois encoder en OEM 850 pour que dans la fenêtre cmd il y ai est accent.


    Je viens de rajouter ton code dans mon bat et tout marche, pour tes commandes powershell je ne sais comment les intégrer.


    En tout cas merci de ton boulot.

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

Discussions similaires

  1. Récuperer une valeur dans un fichier texte
    Par sucrepop dans le forum Langage
    Réponses: 6
    Dernier message: 05/06/2007, 15h01
  2. Lecture de valeurs dans un fichier texte (txt)
    Par zerbault dans le forum Fortran
    Réponses: 2
    Dernier message: 22/01/2007, 10h29
  3. recuperer valeur dans un fichier texte
    Par darksnake dans le forum VBScript
    Réponses: 6
    Dernier message: 15/09/2006, 20h16
  4. Réponses: 2
    Dernier message: 08/06/2006, 13h48
  5. Réponses: 4
    Dernier message: 01/12/2005, 23h13

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