Batch

Bonjour,

qui veut bien corriger mon batch car il marche pas. je debute :)) il cree fichier autant le nombre de i au faite dans le dossier fichier. merci beaucoup

@echo off
cls

SET rep=c:\fichier

IF NOT EXIST (%rep%) goto one
else goto two

:one
md %rep%
for %%i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
echo "ligne numero %%i" > fichier%%i.txt
exit

:two
echo ligne numero %%i > fichier%%i.txt
exit

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Ta ligne :

    for %%i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    echo "ligne numero %%i" > fichier%%i.txt

    N'est pas bonne, le BATCH c'est du ligne par ligne, or la, il y a deux lignes.
    Il te manque simplement un DO dans ta ligne :

    for %%i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) do echo "ligne numero %%i" > fichier%%i.txt

    FOR % IN ('') DO COMMANDE

    Et ta première vérification avec IF NOT EXIST n'est pas bonne.
    1. Parce qu'elle est en deux ligne donc à partir du ELSE ce n'est pas bon
    2. Parce que tu viens simplement de créer la variable, donc aucun intérêt de vérifier son existence une ligne en dessous.

    Et dans ton :TWO, %%i n'a aucune valeur, ce n'est que dans la ligne de ton FOR.
    1. merci pour ta reponse c'est plus clair mais c'est pas encore cà :)) si j'enleve else, comment il va aller dans la deuxième partie two?
      @echo off
      cls

      IF NOT EXIST (c:\fichier) goto one
      :one
      md c:\fichier
      for %%i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) do
      echo "ligne numero %%i" > fichier%%i.txt
      exit

      :two
      echo ligne numero %%i > fichier%%i.txt
      exit
      1. en plus pour le moment, cela me cree juste le repertoire fichier mais pas fichier1.txt fichier2.txt etc
        1. Contributeur
          Ta ligne : echo "ligne numero %%i" > fichier%%i.txt se rajoute à la suite de DO
          for %%i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) do echo "ligne numero %%i" > fichier%%i.txt