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érer les 2 premières lignes de plusieurs fichiers txt et écrire le résultat dans une autre txt [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut récupérer les 2 premières lignes de plusieurs fichiers txt et écrire le résultat dans une autre txt
    Bonjour le forum,

    Je commence par dire que mes notions en batch sont très très faibles..
    Pour me faciliter la vie dans mon boulot, il faudrait que je puisse lancer un script qui va venir me récupérer les 2 premières lignes de plusieurs fichiers txt (tous dans le même répertoire) (le nombre de txt n'est pas fixe...) et me liste celles-ci dans un autre fichier txt intitulé par exemple bilan.txt
    Est-ce possible? Si oui comment?

    Merci d'avance pour vos réponses

  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

    Fichier batch à tester
    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
    @echo off
    mode 80,3 & color 0A
    Title Read 2 lines from each text files and save result in one file
    set "TmpOutPutFile=%Tmp%\Bilan.txt"
    set "OutPutFile=%~dp0Bilan.txt"
    If exist "%TmpOutPutFile%" Del "%TmpOutPutFile%"
    If exist "%OutPutFile%" Del "%OutPutFile%"
    For /r %%f in (*.txt) do (
        Call :ShowAction "%%~nxf"
        Call :Write_N_Lines "%%f" 2 "%TmpOutPutFile%"
    )
    If Exist "%TmpOutPutFile%" ( Copy "%TmpOutPutFile%" "%OutPutFile%" >nul & Del "%TmpOutPutFile%" )
    Start "" "%OutPutFile%" & exit
    ::*********************************************************************************
    :Write_N_Lines <InputFile> <N Lines> <OutPutFile>
    REM %1 Represente le fichier d'entrée qu'on va lire
    REM %2 Represente le nombre de lignes qui doivent être lues à partir du fichier %1
    REM %3 Represente le fichier de sortie
    set /a "compteur=0"
    setlocal enabledelayedexpansion
    for /f "delims=" %%i in ('Type %1') do (
    ::compteur d'incrémentation pour chaque ligne lue
      set /a "compteur+=1"
    :: Si le compteur est inferieur ou égale au nombre de lignes lues 
    REM alors on l'écrit dans le fichier de sortie %3
      if !compteur! LEQ %2 ( echo %%i )>> %3
    )
    Goto :Eof
    ::*********************************************************************************
    :ShowAction
    Cls
    echo(
    echo    Lire les 2 premiers lignes du fichier %1
    Timeout /T 1 /nobreak>nul
    exit /b
    ::*********************************************************************************

  3. #3
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut
    Bjr hackoofr,

    Merci pour le retour!!
    Par contre je ne suis pas sûr de bien comprendre. J'ai enregistré le code en .bat. J'ai ensuite mis le bat dans le répertoire qui contient l'ensemble de mes fichiers txt.
    J'ai lancé le script mais je ne pense pas que cela fonctionne??
    Dois-je modifier certaine ligne?
    Ce script est bien prévu pour lire les 2 premières lignes de x fichiers txt dans un répertoire??
    Et d'écrire le résultat dans un fichier txt.

    merci

  4. #4
    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
    Chez moi ça marche bien
    C'est quoi le nom que vous avez enregistré ce batch ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut
    tri.bat ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut
    chez moi j'ai un dossier avec x fichiers TXT qui sont nommés via une succession de chiffres.
    il faudrait que le script ouvre chaque fichier....lise les 2 premières lignes et copie le contenu de celles-ci dans un fichier TXT (bilan par exemple)

  7. #7
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Voici une solution qui va récuperer les 2 premières lignes sans lire tous le fichier
    pour optimiser le temp de traitement.


    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
    ::By SachaDee - 2018
    
    @echo off
    setlocal enabledelayedexpansion
    
    (for %%a in (*.txt) do (
      (set /p line1=
       set /p line2=)<"%%a"
       echo !line1! 
       echo !line2!
     )
    )>bilan.out
    
    endlocal
    echo Done !!!
    pause
    Resultat dans bilan.out

    Simple et rapide !!!


  8. #8
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut
    salut sachadee,

    Merci pour la réponse mais cela ne fonctionne pas??
    J'ai crée un fichier .bat avec ton code. j'ai placé celui-ci dans le même répertoire que mes fichiers TXT.
    Le batch se lance, je valide en appuyant sur une touche puis rien....??

  9. #9
    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
    Peut-être un problème d'encodage de fichier ?
    Ouvrez un de ces fichiers texte avec notepad++ et donnez nous le type d'encodage de ce fichier, sinon envoyer nous un fichier txt par pièce-jointe

  10. #10
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Tu as regardé si le fichier bilan.out est créer ????

  11. #11
    Membre éclairé
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Par défaut
    les fichiers txt sont encodés en ANSI (via notepad++)
    heu.... non le fichier le fichier bilan.out n'est même pas créer... j'ai essayé de le faire manuellement mais il reste vide??

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

Discussions similaires

  1. Supprimer les deux premières lignes du dernier fichier texte créé
    Par Speedoumitic dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/07/2013, 16h22
  2. Supprimer les n premières ligne d'un fichier
    Par emytom0308 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 01/11/2011, 15h29
  3. Récupérer les 100 premières lignes d'un gros fichier
    Par milad92 dans le forum Débutez
    Réponses: 13
    Dernier message: 14/09/2011, 14h30
  4. Récupérer les X dernières lignes de mon fichier txt
    Par coincoin22 dans le forum Windows
    Réponses: 0
    Dernier message: 08/08/2007, 14h39
  5. Récupérer les 50 premières lignes du requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/08/2006, 11h15

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