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

Delphi Discussion :

ShellExecute C:\Program n'est pas reconnu en tant que commande interne


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 265
    Points : 117
    Points
    117
    Par défaut ShellExecute C:\Program n'est pas reconnu en tant que commande interne
    Bonjour,

    Je travaille sur une application Delphi 7, mon os est Windows 8 64 bits. Dans mon code, je fais ainsi une sauvegarde de ma base de données sur MySQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(1,'open',PChar('cmd.exe '),pchar('/c C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump.exe -u root --password=tresbien bd_emf>C:/backup_test.sql'),nil,SW_SHOW);
    C'est ceci qui s'affiche lorsque j'exécute ce ligne Nom : Erreur.jpg
Affichages : 8364
Taille : 29,4 Ko

    J'ai le fin backup_test.sql mais il est vide.

    Mais lorsque j'exécute cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>mysqldump -u root --password=tresbien bd_emf>C:/backup_test.sql
    en ligne de commande, elle s'exécute sans erreur.

    MySQLDUMP est existe dans le dossier C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin
    Merci de votre aide, afin que je corrige cette erreur.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Le chemin C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump.exe contient des espaces, tu dois donc le mettre entre guillemets pour qu'il soit reconnu en tant que tel et non pas comme une série de commandes.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut oups ! coiffé sur le fil par sevyc64 ;-)
    Bonjour,

    Rajoutez les double guillemets " à votre ligne de commande qui contient des espaces....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(1,'open',PChar('cmd.exe '),pchar('/c "C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump.exe" -u root --password=tresbien bd_emf>C:/backup_test.sql'),nil,SW_SHOW);
    Philippe.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut Remarque supplémentaire
    C'est l'OS qui se charge de la redirection des apps 32 bits. Il faut conserver Program Files même si le chemin affiché dans l'Exporateur est Program Files (x86).

    ps: passer par l'invité de commande (cmd.exe) n'est pas nécessaire ici.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/04/2014, 09h55
  2. MySQL n'est pas reconnu en tant que commande interne
    Par momobulle dans le forum Installation
    Réponses: 4
    Dernier message: 14/03/2012, 22h58
  3. svn n'est pas reconnu en tant que commande interne
    Par liryks_6 dans le forum Subversion
    Réponses: 3
    Dernier message: 17/11/2011, 15h18
  4. 'ls' n'est pas reconnu en tant que commande interne
    Par jaljal dans le forum Langage
    Réponses: 10
    Dernier message: 05/01/2010, 17h51

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