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 :

Lancer une commande + fichier xls [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Lancer une commande + fichier xls
    Bonjour,

    Je voudrais savoir si il était possible de réaliser ceci en batch ou il fallait mieux s'orienter vers du powershell ( sachant que je ne maitrise aucun des deux ) :/

    1- j'ai un fichier data.xls avec 4 colonnes avec 30 lignes

    exemple :

    nom prenom age sexe
    Duval Paul 20 Homme
    Dupont Jean 20 Homme

    2- mon script doit lancer une commande pour chaque ligne en désignant comme variable le nom en haut de la colonne. Je suppose qu'il faut faire un systeme de boucle ?

    exemple d'une commande qui me créer un répertoire avec nom+prenom+age+sexe

    mkdir %nom%%prenom%%age%%sexe%

    J'ai regarder sur le net, il y'a des styles qui se rapprochent mais sans explication claires.

    Pouvez vous m'aiguiller sur le process et les cmd ?

    Merci

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    si tu peux exporter ton fichier dans un format texte (.CSV par exemple) :

    si les separateurs sont des virgules :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    for /f "tokens=1-4 delims=," %%a in (fichier.csv) do (
      echo nom : %%a - Prenom : %%b - Age : %%c - Sexe : %%d
      mkdir %%a%%b%%c%%d
    )

    Si les delimiteurs sont des ; remplace le delims=, par delims=;

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Merci de ces éléments ! peux tu m'expliquer les différentes étapes de fonctionnement ? token %%a ça creer une variable incrémentiel pour chaque colonne ? j'entends par incrémentiel a b c d e f g

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Oui c'est exactement ça. La première étant celle que l'on déclare (%%a dans ce cas). Et vu que j'ai d´clarer 4 tokens on aura en sortie

    token 1 -> %%a
    token 2 -> %%b
    token 3 -> %%c
    token 4 -> %%d

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Super merci je vais essayer d'adapter ma commande avec ta boucle, je reviendrais faire le point !

    Alors je viens de faire le test avec mon exemple et le résultat est nikel.

    En faites j'explique un peu plus en détail :

    j'ai une commande + option et les options seront tiré de chaque varible de mon tableau je ne sais pas si je suis clair

  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Je sais pas non plus si tu es clair

    mais ton explication l'est....

    Cool si ça marche comme tu veux..

    A+

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bon j'ai un sousi lorsque je lance ma commande (qui est spécifique à un logiciel) dans un batch.

    Pour info la commande marche toute seule dans une boite DOS, mais pas au travers d'un batch, y'a t'il une execution à faire du genre un appel dos ?

    de mémoire en vbs oui mais dans un batch ?

  8. #8
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Là j'ai pas tout saisie....

    Lorsque tu parles de
    boite DOS
    tu parles du prompt de commande CMD ?

    Et comment lançes-tu ton BAT ?

    Ta commande est un EXE ?
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    ah tu viens peux être de me donner l'indice avec ton .exe

    Oui en faite avant de penser batch, je lance une boite dos cmd.exe et je lance ma commande + les options.

    dans ce cas là je ne spécifie pas commande.exe + option

    Now avec ton aide je prends les variables du tableur = options et cela donne ceci :

    commande + options

    donc je vais regarder si derriere ma commande j'ai un .exe ( je vais fouiller le folder de mon logiciel)

    Je te tiens au courant.

    Ps: mon script je le renomme en .bat et je double click

    MAJ : je n'ais pas testé encore mais je vais ajouter start devant ma commande.exe

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Mon batch boucle non stop et m'ouvre des fenêtres DOS de partout.

    j'ai juste remplacer le mkdir par start macommande.exe - %%a - %%B - %%C

    (- %%a - %%B - %%C étant des options pris en variable depuis chaque ligne)

  11. #11
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Tu peux essayer avec :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    start "" /wait Ta_commande.exe %%a %%b ...

    mais le start n'est pas forcément necessaire. Juste

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    Ta_commande.exe %%a %%b ...

    devrait fonctionner

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ok je ferai l'essai juste avec commande.exe

    En revanche je ne comprends pas pourquoi j'ai plein d'instances de cmd.exe qui apparaît en boucle.

  13. #13
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    A cause du START dans ta boucle.

    Le START envoye une commande et redonne imédiatement la main à ton script.
    [
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    sachadee, impec ça tourne nikel, je souhaiterais améliorer le systeme.

    Je voudrais que mon listing avec mes variables soit répartit en deux instances de ma commande tu crois que c'est jouable en batch ?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/05/2010, 23h15
  2. Réponses: 1
    Dernier message: 15/05/2009, 16h01
  3. Réponses: 7
    Dernier message: 06/01/2007, 20h16
  4. Lancer une commande en C.
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 26/07/2004, 16h25
  5. Réponses: 1
    Dernier message: 30/04/2004, 11h36

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