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 :

Afficher contenu d'un fichier texte une ligne après l'autre [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    DevOps
    Inscrit en
    Juillet 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Juillet 2014
    Messages : 37
    Par défaut Afficher contenu d'un fichier texte une ligne après l'autre
    Bonjour,

    Je reviens sur mon précédant post : http://www.developpez.net/forums/d14...exte-variable/

    A l'aide du script de hackoofr, j'arrive à lire une ligne précise d'un fichier texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f "skip=3" %%i IN (Test.txt) DO if not defined a set "a=%%i"

    J'ai alors essayé de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    set o=1
    :boucle
    for /f "skip=%o%" %%i IN (texte.txt) DO if not defined a set "a=%%i"
    echo %a%
    set /A o=!o!+1
    pause
    if "%o%"=="10" ( goto fin
    ) else ( goto boucle )
    :fin

    C'est une boucle qui permet de lire une ligne après l'autre mon fichier texte.txt. Grâce à une boucle if else, la variable o est incrémentée au fur et à mesure de 1. Cette variable o règle le nombre de ligne a sauter.

    Malheureusement, ça ne fonctionne pas. Le script m'affiche toujours la même ligne.

    Avez-vous une idée ?

    Merci !

    Guiguir68

  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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    set "file=Test.txt"
    set /A i=0
    
    for /F "usebackq delims=" %%a in ("%file%") do (
    set /A i+=1
    ::call echo %%i%%
    call set array[%%i%%]=%%a
    call set n=%%i%%
    )
    
    for /L %%i in (1,1,%n%) do call echo %%array[%%i]%% && Pause

  3. #3
    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

    Ou bien une autre solution en utilisant Setlocal enabledelayedexpansion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off & Setlocal Enabledelayedexpansion
    set "file=Test.txt"
    for /F "delims=" %%a in (%file%) do (
        set /A count+=1
        set "array[!count!]=%%a"
    )
    for /L %%i in (1,1,%count%) do echo !array[%%i]! && Pause

  4. #4
    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
    Quel est la finalité de ton script ?

    si c'est juste lire une ligne après l'autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "delims=" %%a in (test.txt) do (
      echo %%a
      pause)

  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
    sacha
    Ta réponse est la plus simple, car j'ai cherché la solution la plus complexe en utilisant la méthode du tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    for /f "delims=" %%a in (test.txt) do ( echo %%a && pause)

  6. #6
    Membre averti
    Homme Profil pro
    DevOps
    Inscrit en
    Juillet 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Juillet 2014
    Messages : 37
    Par défaut
    Merci une fois de plus hackoofr

    Bonne journée

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

Discussions similaires

  1. faire apparaitre une ligne après l'autre
    Par Yepazix dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2013, 22h59
  2. Ajout du contenu d'un fichier dans une ligne précise d'un autre fichier
    Par megayaya dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/10/2012, 09h28
  3. Récupérer contenu d'un fichier texte en ligne
    Par Schnapse dans le forum Langage
    Réponses: 1
    Dernier message: 05/03/2012, 14h15
  4. Réponses: 3
    Dernier message: 19/05/2009, 09h00
  5. Afficher contenu d'un fichier dans une zone de texte
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 23/09/2006, 14h09

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