[Résolu] - [Batch Dos] probleme commande for /F

probleme commande for /F [Résolu] - [Batch Dos] - Shell/Batch - Programmation

Marsh Posté le 02-10-2008 à 11:22:18    

bonjour à tous j'ai un petit probleme avec la commande for /F
 
j'ai 2 scripts et un fichier csv
 
1er Scritp randomize

Code :
  1. echo Traitement de %1
  2. type mail1.txt  >  tmp/mailenv%1.txt
  3. echo Le nouveau mot de passe de %1 sera : variabledéjàdéfinie  >>  tmp/mailenv%1.txt
  4. type mail2.txt  >>  tmp/mailenv%1.txt
  5. echo blat c:\test\forum\tmp\mailenv%1.txt -t %2 -c %3 -s "Changement de mot de passe" >> envoi-mail-prev.cmd


 
2eme Script l_randomize

Code :
  1. @echo off > envoi-mail-prev.cmd
  2. for /F "tokens=1-3 delims=;" %%i in (listusers2.csv) do call randomize.bat %%i %%j %%k


 
Fichier listusers2.csv

Code :
  1. totoMAG01;toto1@tototo.fr;Directeur1@toto.fr
  2. totoMAG02;toto2@tototo.fr;Directeur2@toto.fr
  3. totoMAG03;toto3@tototo.fr;Directeur3@toto.fr
  4. totoMAG04;toto4@tototo.fr;Directeur4@toto.fr
  5. tataMAG01;riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr;Directeur1@toto.fr
  6. tataMAG02;riri2@toto.fr,fifi2@toto.fr,loulou2@toto.fr;Directeur2@toto.fr
  7. tataMAG03;riri3@toto.fr,fifi3@toto.fr,loulou3@toto.fr;Directeur3@toto.fr
  8. tataMAG04;riri4@toto.fr,fifi4@toto.fr,loulou4@toto.fr;Directeur4@toto.fr


 
voici le resultat d'un user du type "tata"

Code :
  1. blat c:\test\forum\tmp\mailenvtataMAG01.txt -t riri1@toto.fr -c fifi1@toto.fr -s "Changement de mot de passe"


 
voici ce que je devrais/voudrais avoir pour un utilisateur du type "tata"

Code :
  1. blat c:\test\forum\tmp\mailenvtataMAG01.txt -t riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr -c directeur1@toto.fr -s "Changement de mot de passe"


 
ce que je ne comprend pas c'est que j'ai bien utilisé le delimiteur ; et il utilise le delimiteur , aussi ??
 
Par avance merci.
 
Dob.


Message édité par dob2806 le 10-10-2008 à 11:44:40
Reply

Marsh Posté le 02-10-2008 à 11:22:18   

Reply

Marsh Posté le 02-10-2008 à 17:21:57    

Bon a priori c'est bon pour cette partie la je reposte ma solution
 
randomize.bat

Code :
  1. echo Traitement de %user%
  2. type mail1.txt  >  tmp/mailenv%user%.txt
  3. echo Le nouveau mot de passe de %user% sera : variabledejadefinie  >>  tmp/mailenv%user%.txt
  4. type mail2.txt  >>  tmp/mailenv%user%.txt
  5. echo blat c:\test\forum\tmp\mailenv%user%.txt -t %destinataire% -c %copiecarbone% -s "Changement de mot de passe" >> envoi-mail-prev.cmd


 
L_randomize.bat

Code :
  1. @echo off > envoi-mail-prev.cmd
  2. for /F "tokens=1-3 delims=;" %%i in (listusers2.csv) do (
  3. set user=%%i
  4. set destinataire=%%j
  5. set copiecarbone=%%k
  6. )& call randomize.bat
  7. pause


 
j'ai un bon envoi-mail-prev.cmd

Code :
  1. blat c:\test\forum\tmp\mailenvtotoMAG01.txt -t toto1@tototo.fr -c Directeur1@toto.fr -s "Changement de mot de passe"
  2. blat c:\test\forum\tmp\mailenvtotoMAG02.txt -t toto2@tototo.fr -c Directeur2@toto.fr -s "Changement de mot de passe"
  3. blat c:\test\forum\tmp\mailenvtotoMAG03.txt -t toto3@tototo.fr -c Directeur3@toto.fr -s "Changement de mot de passe"
  4. blat c:\test\forum\tmp\mailenvtotoMAG04.txt -t toto4@tototo.fr -c Directeur4@toto.fr -s "Changement de mot de passe"
  5. blat c:\test\forum\tmp\mailenvtataMAG01.txt -t riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr -c Directeur1@toto.fr -s "Changement de mot de passe"
  6. blat c:\test\forum\tmp\mailenvtataMAG02.txt -t riri2@toto.fr,fifi2@toto.fr,loulou2@toto.fr -c Directeur2@toto.fr -s "Changement de mot de passe"
  7. blat c:\test\forum\tmp\mailenvtataMAG03.txt -t riri3@toto.fr,fifi3@toto.fr,loulou3@toto.fr -c Directeur3@toto.fr -s "Changement de mot de passe"
  8. blat c:\test\forum\tmp\mailenvtataMAG04.txt -t riri4@toto.fr,fifi4@toto.fr,loulou4@toto.fr -c Directeur4@toto.fr -s "Changement de mot de passe"


 
et mes mails sont bien dans mon /tmp.
 
me reste plus qu'a trouvé le moyen de créer ma tache planifié a J+3 pour finir la totalité de mon script.

Reply

Sujets relatifs:

Leave a Replay

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