Boucle For en MSDOS

Résolu
Zyclo Messages postés 227 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

je cherche a faire une boucle For , en ligne de commande DOS qui va lire les lignes d un fichier texte.
Pour ce faire, j ai mon fichier en entree
(liste.txt)
1
4
5
80
10

pour lire le fichier je fais un commande suivante :
for /F %%I in (liste.txt) do ( echo %%I)

Le systeme me repond : " %%I was unexpected at this Time " , j avoue que je suis perdu, quelqu un peut il m aider ?

Merci par avance, ZY

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    en ligne de commande, les variables ne sont précédées que d'un seul %
    C:> for /F %I in (liste.txt) do @echo %I
    1
    4
    5
    80
    10
    
    2
    1. Utilisateur anonyme
       
      Salut dubcek ;)

      Mais s'il passe par là, ou par bat

      avec ton code

      C:> for /F %I in (liste.txt) do @echo %I  
      1  
      4  
      5  
      80  
      10



      Il faut que le fichier liste.txt se trouve sur C:


      sinon, il faudrait commencer par
      cd CHEMIN DU FICHIER



      Exemple : le fichier se trouve sur le bureau
      cd %userprofile%\desktop  
      for /F %I in (liste.txt) do @echo %I  
      



      Je peux me tromper ;)


      Je vais tester sur mon pc ===> ça marche


      ps : en tout cas, merci à toi, Dubcek : je ne savais pas qu'on pouvait faire cela directement sur CMD...


      Mais cela est plus pratique en fichier .bat ;)


      @dubeck : Tu connais l'autoit ?

      @+
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      non, qu'est ce que l'autoit ?
      0
    3. Utilisateur anonyme
       
      Une autr programmation, autre que le batch ;)


      Avec une interface graphique ;)


      Plus compliqué que le batch


      Là, je suis une formation là dedans....


      Je rame un peu (voire pas mal ^^)


      @+
      0
    4. Zyclo Messages postés 227 Statut Membre 17
       
      AutoIt ? tiens? tu veux tricher aux jeux facebook ?
      :-)
      j ai abandonne le truc, mais c est vrai que ca rapporte pas mal, tant que les interfaces ne changent pas...
      PS : Desole pour le commentaire de 15:01, j avais la tete ailleurs, j ai demané a ce qu on l efface...
      0
    5. Utilisateur anonyme
       
      autoit n'est pas fait piur tricher au jeu ! Ca, c'est un cliché ;)

      Pour l'instant, jai crée un outil qui recherche des fichiers sur le net et sur le pc.

      Je suis qu'au debut ;)

      A+
      0
  2. Utilisateur anonyme
     
    Bonjour.

    je viens de tester ton code

    Effectivement, ça ne marche pas : mais j'obtiens une erreur différente que la tienne

    Par contre, ce code là marche pour moi

    @echo off 
    for /F %%I in (%userprofile%\desktop\liste.txt) do ( echo %%I)


    Essaye-le et dis moi tout ;)

    Je viens d'avoir un flash :D

    Ta commande, tu l'inscris où ? Directement sur CMD ?

    Edit :

    J'ai testé sur CMD directement : j'ai la même erreur que toi...

    Il faut créer un bat pour lancer ton code.....

    * tu crée un fichier text (.txt) sur ton bureau
    * tu modifie le .txt en .bat
    * tu modifie le fichier (clic droit)
    * tu met ton code
    @echo off 
    for /F %%I in (%userprofile%\desktop\liste.txt) do ( echo %%I)

    * tu l'enregistre
    * et tu le lances

    @+
    0
    1. Zyclo Messages postés 227 Statut Membre 17
       
      Salut franco,
      Bien sur qu en fait c est dans un batch que je l ecris mais comme ca ne me donne pas ce que je veux, j essaie de comprendre en ligne de commande...
      ce qui m agace c est que j ai toujours la meme reponse. et le meme message d erreur incomprehensible.
      je dois avoir un truc un peu tordu du genre une fenetre look msdos, mais qui ne l est pas vraiment .;
      je vais continuer a checher, ...
      @+
      0
    2. Zyclo Messages postés 227 Statut Membre 17
       
      Oulaaa, moi ca ma vapas mieux, bien sur que votre recette fonctionne,
      merci les gars (dormirez moins bete ce soir)
      0
    3. Utilisateur anonyme
       
      Salut ;)

      Au lieu de mettre (liste.txt), :
      => met le chemin complet
      exemple ("c:\users\thomas\desktop\liste.txt)
      ou
      => sert toi de la commande cd pour te rendre directement sur le chemin où se trouve liste.txt

      comme ceci

      @echo off 
      cd c:\users\thomas\desktop 
      for /F %%I in (liste.txt) do ( echo %%I) 
      pause


      J'ai rajouté une pause, afin que tu vois que l'invite de commandes affiche ^^

      Adapte le code avec tes propres chemins
      Met ce code dans un fichier bat ;)

      Et lance le ;)


      @+
      0
    4. Zyclo Messages postés 227 Statut Membre 17
       
      c est bon , merci (en fait cette partie est une mince contribution a un merdier plus gros, mais qui me fait gagner quelques heures en ecritures et verification) merci encore
      0