Boucle "for" ennuyeuse...

Boucle "for" ennuyeuse... - Shell/Batch - Programmation

Marsh Posté le 29-09-2014 à 16:50:42    

Bonjour,
 
J'ai ce code:
 

Code :
  1. FOR /f %%i IN (export.txt) DO (
  2. FOR /f %%j IN (nombre.txt) DO (
  3. echo ligne %%i >> D:\Script_Base_de_donnees\test\%%j.txt
  4. )
  5. )
  6. pause


Mon fichier export.txt contient des lignes de mots. Mon fichier nombre.txt contient un nombre par ligne, avec autant de ligne que dans mon export.txt.
 
J'aimerai que dans chaque %%j.txt se retrouve le %%i correspondant de mon fichier export.txt.
En gros, il faudrait que dans mon 1er %%j.txt qui s'appellera 1.txt, je retrouve le 1er mot de mon export.txt, etc avec le 2.txt qui aura le 2eme mot...
 
Pour le moment, j'obtiens mes fichiers %%j.txt sans problème, mais ils contiennent tous l'intégralité de mon export.txt.
 
Je ne vois pas ce qui cloche :/


Message édité par ananaga le 06-10-2014 à 14:45:16
Reply

Marsh Posté le 29-09-2014 à 16:50:42   

Reply

Marsh Posté le 30-09-2014 à 11:32:25    

Bah comment veux tu que ça marche sans contrôle du numéro de ligne (un IF qq part)...
 
J'ai réussi à faire qq chose qui semble correspondre :

Code :
  1. SETLOCAL EnableDelayedExpansion
  2. @echo off
  3. SET /a "numLigne=0"
  4. FOR /f %%i IN (export.txt) DO (
  5.     SET /a numLigne+=1
  6.     FOR /f %%j IN (nombre.txt) DO (
  7.         IF !numLigne! EQU %%j ECHO ligne %%i >> result\%%j.txt
  8.     )
  9. )

Reply

Marsh Posté le 30-09-2014 à 11:57:00    

Je me doutais qu'il fallait un if quelque part mais je n'arrivais pas à le caser... Merci beaucoup pour ton aide!! Ca fonctionne nickel :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed