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

Langage PHP Discussion :

Exécution de fichier "cmd" dans son contexte


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Exécution de fichier "cmd" dans son contexte
    Bonjour à tous,

    Voilà ma problématique :
    J'ai une application web (php/mysql) qui récupère des informations sur le serveur ou est installée l'application via l'exécution de fichier "cmd".

    Le problème est que la commande php "exec" exécute bien ma commande mais pas dans le bon contexte (pas dans le dossier ou est placée la commande). Pas la peine non plus de faire un "cd" avant ca ne fonctionne pas.

    Existe t-il une technique en php ? (Personnellement j'utilise le lancement de tâches planifiées mais la maintenance est très lourde)

    Question subsidiaire : Existe t-il une technique en perl ?

    Merci !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    peux-tu poster les quelques lignes où tu fais ton exec pour y voir plus clair ?

    Merci,

    Karl3i.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Oui mais je ne sais pas si ca aidera beaucoup...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Execution de la tâche planifiée qui génère le fichier des activités et le déplace sur le dossier de l'application
     
    $last_line = exec("schtasks /Run /TN $code", $retval);
     
    sleep(50);
     
    $content=file_get_contents('http://localhost/SDA/activites/'.$code.'.txt','r');
    Je lance donc une tâche planifiée qui lance mon ".cmd". La formule étant trop lourde je voulais savoir si je ne pouvais pas directement exécuter mon .cmd ET SURTOUT qu'il soit exécuté dans le dossier dans lequel il est placé... Ce qui n'est pas le cas avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec("C:/.../.../commande.cmd");
    Merci,

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Ca peut aider de connaître le contexte .

    Voilà un test que tu peux essayer de reproduire/adapter chez toi. Le code PHP est dans une arborescence sur C:/fdjljkl/fjlkdjsf, le batch est sur C:/ et je fais générer le fichier que je souhaite sur C:/Test

    Code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
     
    exec("c:/test.bat",$output,$return);
     
    echo "<pre>";
    print_r($output);
    echo "</pre>";
     
    echo "<pre>";
    print_r($return);
    echo "</pre>";
    ?>
    Code batch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cd..
    cd..
    cd test
    echo "hi" > test.txt
    et après exécution du PHP, dans c:/test/test.txt, j'ai

    "hi"
    Est-ce que ça t'aide ?

    J'ai regardé la doc de la fonction exec en PHP, et effectivement on n'a pas l'air de pouvoir imposer le répertoire de travail.

    Karl3i.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    Ouah super merci tu m'as débloqué. J'ai des différences de comportement entre les ".bat" et les ".cmd".

    Avec un bat sur mon serveur :
    d:
    cd D:\..\..\..\
    Ma commande >fichier.txt
    move .\fichier.txt C:\wamp\www\...
    Ca marche. Merci beaucoup.

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

Discussions similaires

  1. sélection fichier comprenant la date dans son nom
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/04/2012, 18h25
  2. import fichier vrml avec coin3d dans un contexte openGL
    Par kikodingo dans le forum OpenGL
    Réponses: 1
    Dernier message: 08/05/2007, 22h28

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