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 :

[Batch Dos] probleme commande for /F


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Par défaut [Batch Dos] probleme commande for /F
    bonjour à tous j'ai un petit probleme avec la commande for /F

    j'ai 2 scripts et un fichier csv

    1er Scritp randomize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo Traitement de %1
    type mail1.txt  >  tmp/mailenv%1.txt
    echo Le nouveau mot de passe de %1 sera : variabledéjàdéfinie  >>  tmp/mailenv%1.txt
    type mail2.txt  >>  tmp/mailenv%1.txt
    
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off > envoi-mail-prev.cmd
    for /F "tokens=1-3 delims=;" %%i in (listusers2.csv) do call randomize.bat %%i %%j %%k
    Fichier listusers2.csv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    totoMAG01;toto1@tototo.fr;Directeur1@toto.fr
    totoMAG02;toto2@tototo.fr;Directeur2@toto.fr
    totoMAG03;toto3@tototo.fr;Directeur3@toto.fr
    totoMAG04;toto4@tototo.fr;Directeur4@toto.fr
    tataMAG01;riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr;Directeur1@toto.fr
    tataMAG02;riri2@toto.fr,fifi2@toto.fr,loulou2@toto.fr;Directeur2@toto.fr
    tataMAG03;riri3@toto.fr,fifi3@toto.fr,loulou3@toto.fr;Directeur3@toto.fr
    tataMAG04;riri4@toto.fr,fifi4@toto.fr,loulou4@toto.fr;Directeur4@toto.fr
    voici le resultat d'un user du type "tata"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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"
    pour un utilisateur de type "toto" il n'y a pas de probleme, mais pour un de type "tata" il y a probleme, 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.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dob2806
    et il utilise le delimiteur , aussi ??
    Non c'est le shell qui utilise la virgule comme séparateur de paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /F "tokens=1-3 delims=;" %%i in (listusers2.csv) do call randomize.bat %%i "%%j" %%k
    Il faut placer le second champs, %%J, entre guillemets.
    Fallait juste placer une commande echo %1 %2 %3 dans le batch randomize...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Par défaut
    bien vu j'obtiens bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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"
    mais le probleme qui se pose maintenant c'est que Blat ne va pas reconnaitre le destinataire car il fonctionne ainsi:

    blat -t mail1,mail2 et quand je met les guillemets il ne fonctionne pas.

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dob2806
    mais le probleme qui se pose maintenant c'est que Blat ne va pas reconnaitre le destinataire car il fonctionne ainsi:

    Dans ce cas utilise une variable d'environnement, créée avant d'appeler le batch de création de mail, tu ne lui passes donc plus que 2 paramètres.
    qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /F "Tokens=*" %%I in ('Dir %1 /AD /B') do set MaVariable=%%I&call fichier.cmd"
    Dans le batch de création de mail, en lieu et place de %%2 tu indiques le nom de ta variable. Et enfin tu y supprimes cette variable.
    qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo blat c:\test\forum\tmp\mailenv%1.txt -t %MaVariable% -c %2 -s "Changement de mot de passe" >> envoi-mail-prev.cmd
    Set MaVariable=

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Par défaut
    je ne comprend pas le pourquoi de ('Dir %1 /AD /B')

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dob2806 Voir le message
    je ne comprend pas le pourquoi de ('Dir %1 /AD /B')
    J'ai précisé "qq chose comme", faut adapter le code...

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

Discussions similaires

  1. boucle for batch dos
    Par sacan dans le forum Windows
    Réponses: 1
    Dernier message: 27/09/2011, 16h23
  2. La commande FOR en BATCH
    Par benkhdiri dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 15/12/2008, 13h36
  3. [BATCH] DOS, déplacement de fichier dans une boucle FOR
    Par nicoga dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 14/11/2008, 14h36
  4. [Batch Dos] Probleme de caracteres dans l'export txt
    Par dob2806 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 28/10/2008, 23h37
  5. Réponses: 5
    Dernier message: 01/10/2003, 15h03

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