Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1644 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  lancer un .bat en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lancer un .bat en php

n°1139166
natbo
Posté le 04-07-2005 à 11:30:17  profilanswer
 

Salut à tous,
 
Je cherche à automatiser des lignes de codes pour aider à remplir une bd en postgres.postgis. Pour cela, je fais une interface locale en php. J'ai déjà récupérer les valuers dont g besoin et je créé un fichier .bat que je souhaite lancer dans mon fichier php et il doit me créer un fichier sql que je lancerais ultérieurement. Le hic c'est qu'il ne s'exécute pas.
Voici le code.. QQu'un peut m'aider svp????
 
$shell_output = fopen("C:\\Program Files\\PostgreSQL\\8.0\\shelloutput.bat","w" );
$line="bin\\"."shp2pgsql -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;
fwrite($shell_output,$line);
fclose($shell_output);
exec("$shell_output" );

mood
Publicité
Posté le 04-07-2005 à 11:30:17  profilanswer
 

n°1139192
sielfried
Posté le 04-07-2005 à 11:42:26  profilanswer
 

Là tu files à exec un stream de fichier, fermé en plus.
 
Il veut le chemin, lui, a priori.
 
En même temps, j'ai jamais eu l'occasion d'utiliser exec, donc je sais pas.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1139197
natbo
Posté le 04-07-2005 à 11:45:03  profilanswer
 

J'ai aussi essayé de le faire avec
exec("C:\\Program Files\\PostgreSQL\\8.0\\shelloutput.bat" );
mais ce ne fonctionne pas non plus!!!

n°1139202
soju
One shot !
Posté le 04-07-2005 à 11:48:38  profilanswer
 

natbo a écrit :

mais ce ne fonctionne pas non plus!!!


- un message d'erreur ? un retour ?
- le fichier bat a bien été généré ?
- pourquoi ne pas lancer ces commandes à partir de php ?
 

n°1139210
natbo
Posté le 04-07-2005 à 11:51:36  profilanswer
 

Pas de messages d'erreur lorsque je lance mon fichier php.
Le fichier .bat est généré mais je n'arriva pas à l'exécuter en fait.
J'ai essayé de lancer aussi comme ça mais ce ne fais pas non plus:
 
$line="C:\Program Files\PostgreSQL\8.0\bin\shp2pgsql -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;
exec($line);
 
Je ne vois pas ou est l'erreur..
C'est bien la fonction exec pour exécuter un programme????

n°1139456
natbo
Posté le 04-07-2005 à 15:19:02  profilanswer
 

Personne ne peut vraiment m'aider???
Je suis réellement bloquée........

n°1139540
sielfried
Posté le 04-07-2005 à 16:43:08  profilanswer
 

Je pense qu'il faut que ce soit un chemin relatif. Essaie en créant le .bat à la racine de ton script.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1139545
cesarr89
Posté le 04-07-2005 à 16:46:23  profilanswer
 

natbo a écrit :

Pas de messages d'erreur lorsque je lance mon fichier php.
Le fichier .bat est généré mais je n'arriva pas à l'exécuter en fait.
J'ai essayé de lancer aussi comme ça mais ce ne fais pas non plus:
 
$line="C:\Program Files\PostgreSQL\8.0\bin\shp2pgsql -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;
exec($line);
 
Je ne vois pas ou est l'erreur..
C'est bien la fonction exec pour exécuter un programme????


 
Et le .bat généré, il fonctionne correctement?

n°1139569
soju
One shot !
Posté le 04-07-2005 à 16:57:21  profilanswer
 

ptet un pb de droits, à vérifier

n°1141478
gatsusat
Posté le 05-07-2005 à 23:13:47  profilanswer
 

$line="C:\Program Files\PostgreSQL\8.0\bin\shp2pgsql -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;  
exec($line);  
tu n'indique pas l'extension du fichier, et donc apparament là il ne varien chercher comme executable.
 
tente ca  
 
$line="C:\Program Files\PostgreSQL\8.0\bin\shp2pgsql.exe -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;  
exec($line);  
 

mood
Publicité
Posté le 05-07-2005 à 23:13:47  profilanswer
 

n°1141540
burgergold
5$? va chez l'diable!
Posté le 06-07-2005 à 00:08:34  profilanswer
 

c'est pas simplement qu'il faut \\ les \
sachant que le \ est un caractère d'échappement, et que là tu a par exemple, \P ... \P ... \8 ... \b... tu vois le principe
 
faudrait les doubler

n°1141549
naceroth
Posté le 06-07-2005 à 00:37:06  profilanswer
 

essaye

Code :
  1. exec('start C:\\Program Files\\PostgreSQL\\8.0\\shelloutput.bat');


 
peut être. Fait attention, la sortie sera à la racine du script php, pas à celui du .bat normalement.

n°1141652
natbo
Posté le 06-07-2005 à 09:32:50  profilanswer
 

Merci pour ces réponses...
J'ai enfin trouvé la solution, grâce à vous!!!
En fait, le bat se trouve effectivement à la racine du script php... c'est pour cela qu'il ne le trouvait pas. De plus, j'ai mis mon prog shp2pgsql à la racine de php et cela fonctionne...

Code :
  1. $shell_output = fopen("shelloutput.bat","w+" ); //On crée ou on ouvre un fichier .bat  
  2. $line="shp2pgsql -s ".$srid." -c ".$shape." ".$table." ".$bd." > ".$fichierSql;
  3. fwrite($shell_output,$line);  //on ecrit ds ce fichier bat la ligne du dessus
  4. $line2="\n"."exit";// on va a la ligne et on tape la commande pour fermer la fenetre dos
  5. fwrite($shell_output,$line2);
  6. fclose($shell_output);  //on ferme le fichier bat
  7. exec("start shelloutput.bat" ); // on exécute ce fichier bat


 
Merci à tous!!! :bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  lancer un .bat en php

 

Sujets relatifs
changer de user pour lancer un processuslancer un script sur le serveur toute les 2minutes
lancer un script PHP depuis serveurlancer une procedure dans un trigger
Lancer mon application C# au démarrage de Windowslancer un fichier sous builder c++
[VBS][resolu] Lancer .BAT avec argument ?lancer une application java externe
comment lancer un.bat avec un boutonSocket en C, lancer le serveur sur 2 ports
Plus de sujets relatifs à : lancer un .bat en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR