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

C Discussion :

Lancer un .bat :/


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut Lancer un .bat :/
    Bonjour à tous.
    Ca fait déjà un moment que j'essaye, par tous moyens d'exécuter un fichier .bat.

    system("start C:/Dev-Cpp/pata.bat"); fonctionne pas
    system("start C:/DEVCPP/pata.bat"); fonctionne pas
    `C:/Dev-Cpp/pata.bat`; fonctionne pas
    system("start C:\\Dev-Cpp\\pata.bat"); fonctionne pas
    system("start C:\\DEVCPP\\pata.bat"); fonctionne pas

    Il ouvre une fenêtre cmd.exe, et non le fichier.

    Ca, ça a l'air encore super simple.
    Mais je veux lancer un .bat avec son chemin en variable.

    char buf[256];
    memset(buf, 0, 256);
    getcwd(buf, 255);
    sprintf(buf, "%s %s\\pata.bat", "start", buf);
    // ou sprintf(buf, "\"start %s\\pata.bat", buf)
    system(buf);

    Ne fonctionne pas.
    J'ai déjà essayé ShellExecute, qui ne fonctionne pas non plus, ainsi que execv();

    Pouvez-vous m'aider?
    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("C:/Dev-Cpp/pata.bat");
    devrait fonctionner.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par P@T@p!Zz@
    Ca fait déjà un moment que j'essaye, par tous moyens d'exécuter un fichier .bat.

    system("start C:/Dev-Cpp/pata.bat"); fonctionne pas
    system("start C:/DEVCPP/pata.bat"); fonctionne pas
    `C:/Dev-Cpp/pata.bat`; fonctionne pas
    system("start C:\\Dev-Cpp\\pata.bat"); fonctionne pas
    system("start C:\\DEVCPP\\pata.bat"); fonctionne pas
    Où se trouve exactement le .bat sur ton disque ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Non, Luther13.

    C:\Dev-Cpp\pata.exe

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Le problème, c'est qu'il lance la console cmd.exe avec une ligne d'espace puis
    "<C:\Dev-Cpp\>" et là, on peut taper des commandes...
    Je tape pata.bat, et il ne fait rien.

    Pourtant, quand je lance pata.bat, il fonctionne correctement...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Bon,
    Si cette autre solution ne marche pas, j'abandonne.
    Et toutes mes excuses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(NULL,"open","C:/Dev-Cpp/pata.bat",NULL,"C:/Dev-Cpp",SW_SHOW);

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    J'ai l'impression que le system refuse de lancer un .bat via C.

    Ton ShellExecute ne génère pas d'erreur, le pointeur affiche un sablier pendant cinq secs puis continue le programme C.

    pata.bat :
    @echo hello world

    Pourtant ça ne fonctionne pas.

  8. #8
    Membre chevronné
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Par défaut
    Hello,

    Citation Envoyé par P@T@p!Zz@
    Bonjour à tous.
    Ca fait déjà un moment que j'essaye, par tous moyens d'exécuter un fichier .bat.

    system("start C:/Dev-Cpp/pata.bat"); fonctionne pas
    system("start C:/DEVCPP/pata.bat"); fonctionne pas
    `C:/Dev-Cpp/pata.bat`; fonctionne pas
    system("start C:\\Dev-Cpp\\pata.bat"); fonctionne pas
    system("start C:\\DEVCPP\\pata.bat"); fonctionne pas

    Il ouvre une fenêtre cmd.exe, et non le fichier.
    C'est normal que cmd soit lancé, c'est ce que fait la fonction system() sous Windows NT-like (NT/2000/XP). system() aurait lancé command.com sous Win 95/98 poar exemple, ou encore ouvert le shell par défaut dans une fenêtre de terminal sous un Unixoïde...

    Tes exemples devraient fonctionner si pata.bat est bien où il faut. Je soupçonne tout bêtement que pata.bat n'est pas un vrai fichier batch...mais un fichier texte, ce qui arrive souvent après enregistrement du fichier lorsque l'on utilise un éditeur classique. Ton fichier peut donc s'appeler pata.bat.txt au lieu de pata.bat, et ce con de Win... quand l'explorateur est configuré de façon à ne pas voir l'extension du fichier si cette dernière est connue, va afficher 'pata.bat' et non 'pata.bat.txt'. Si le fichier est un vrai batch, son extension ne doit pas apparaitre non plus dans cette configuration. Perso sous Win, je désactive cette option de masquage des extensions de fichiers connues.

    Je ne vois que ça car les chaines passées à system() sont correctes.

    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Non, car je crée ce fichier par le programme C.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    FILE * fic;
    fic = fopen ("pata.bat", "w");
    (void) fprintf(fic, "%s", "@echo hello world!");
    int fclose(fic);
    ShellExecute(NULL,"open","C:/Dev-Cpp/pata.bat",NULL,"C:/Dev-Cpp",SW_SHOW);
    // ou alors system("start C:\\Dev-Cpp\\pata.bat");
      system("PAUSE");

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Je rajouterai une ligne pause à la fin du contenu du fichier.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    FILE * fic;
    const char * nomFichier = "C:/pata.bat";
    fic = fopen (nomFichier, "w");
    if(fic !=NULL)
    {
    	fprintf(fic, "%s", "@echo hello world!");
    	fprintf(fic, "%s", "\npause"); /* ou pausel system*/
    	fclose(fic);
    	/*ShellExecute(NULL,"open",nomFichier,NULL,"C:/",SW_SHOW);*/
    	system(nomFichier);
                getchar();
    }

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    Oui, je l'avais fait, m'enfin, ça ne change rien au problème.

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Le dernier code que j'ai fourni fonctionne très bien, c'est pour cette raison que je l'ai livré.
    S'il y a un soucis, il doit venir de ton system: rien à voir avec le C.

    Quel est le résultat de cette commande dans ta console:
    > set PATHEXT

  13. #13
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    En desespoir de cause tu peux aussi ouvrir pata.bat depuis ton programme C et faire un system() de chaque ligne.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    .BAT est dedans.

Discussions similaires

  1. lancer un .bat et cacher la fenetre dos
    Par peppena dans le forum Scripts/Batch
    Réponses: 28
    Dernier message: 06/07/2019, 14h42
  2. Lancer plusieurs .bat en même temps
    Par mdriesbach dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/09/2006, 16h37
  3. [Système] lancer un .bat depuis php
    Par Invité dans le forum Langage
    Réponses: 18
    Dernier message: 05/07/2006, 17h11
  4. lancer un .bat depuis un script python
    Par manu.c dans le forum Général Python
    Réponses: 9
    Dernier message: 02/05/2006, 14h41
  5. [Système] lancer un .bat en PHP
    Par valal dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 11h40

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