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] Compter le nb de ligne d'un fichier pour en déterminer une autre action


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 15
    Points
    15
    Par défaut [Batch] Compter le nb de ligne d'un fichier pour en déterminer une autre action
    bonjour

    dans un batch, je concatène des fichiers dans un fichier résultat, si celui-ci est vide, je ne fais rien sinon (si il contient au moins une ligne), je le dépose sur un serveur et envoie un mail (via BLAT)

    Je voudrais affiner ce processus en comptant le nb de lignes dans le fichier résultat et ne l'envoyer qu'à partir d'un certain nombre de ligne (disons 50).

    Comment compter le nombre de ligne, stocker le résultat dans une variable ? Je souhaite ensuite utiliser la variable dans un IF comme dans le code ci-dessous à la place du %IFERRORLEVEL%

    De plus je traite plusieurs lots de fichiers les uns après les autres, la variable du compteur doit être remise à zéro entre chaque lot (ou alors créer un compteur par lot ?)




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    z:
    cd xxx\xx\
    copy /Y /B xx.001 + yy.001 + zz.001 fichier_resultat.001
    
    %Executable_is_empty% fichier_resultat.001
    
    IF %ERRORLEVEL% ==1 copy /Y /B fichier_resultat.001 \\xxx\xxx
    
    %Executable_is_empty% fichier_resultat.001
    
    IF %ERRORLEVEL% ==0 (goto second_lot_de_fichiers) else goto ENVOIMAIL

    Merci

  2. #2
    Membre averti Avatar de plopi
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2011
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 191
    Points : 306
    Points
    306
    Par défaut
    Tu pourrai poster un extrait du fichier résultat pour essayer de voir ce qu'il est possible de faire ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    bonjour

    ce sont de simples fichiers textes.

    J'en joins un extrait, j'ai supprimé les données nominales et j'ai remis une extension TXT pour qu'il soit accepté sur le site (sinon, extension 001 mais çà ne changera pas le fond du problème)
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti Avatar de plopi
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2011
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 191
    Points : 306
    Points
    306
    Par défaut
    En prenant comme base le fichier fourni la seule expression présente que j'ai trouvée c'est LILLE_BTQ, on peut essayer de récupérer le nombre de lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @for /f %i in ('findstr /i /c:LILLE_BTQ MM_OM_ABL76A04_06_2011-1.txt ^| find /c "LILLE_BTQ"') do set nbs_lines=%i
    Après il est possible d'embriquer un "IF"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %nbs_lines% gtr 50 ....
    EDIT

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    bonjour

    merci plopi.

    çà a parfaitement marché, cf code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    :CFA
    z:
    cd xxx\xxx\
    copy /Y /B xx.001 + xx.001 + xx.001 + xx.001 + xx.001 + xx.001 fichier_resultat%DateDuJour%.001
    set nb_lignes=
    @for /f %%i in ('findstr /i /c:"TOTO" fichier_resultat%DateDuJour%.001 ^| find /c "TOTO"') do set nb_lignes=%%i
    IF %nb_lignes% gtr 50 copy /Y /B fichier_resultat%DateDuJour%.001 \\xxxx\xxx
    IF %nb_lignes% gtr 50 goto envoiCFA else goto GAV

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/06/2007, 10h53
  2. Compter le nombre de ligne dans un fichier
    Par amine_en_france dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 31/05/2007, 17h19
  3. Compter le nombre de lignes d'un fichier ?
    Par [ZiP] dans le forum Delphi
    Réponses: 5
    Dernier message: 22/03/2007, 14h08
  4. Compter le nombre de lignes d'un fichier excel
    Par Freerideuse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/07/2006, 21h49
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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