lancer un .bat en php

lancer un .bat en php - PHP - Programmation

Marsh Posté le 04-07-2005 à 11:30:17    

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" );

Reply

Marsh Posté le 04-07-2005 à 11:30:17   

Reply

Marsh Posté le 04-07-2005 à 11:42:26    

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
Reply

Marsh Posté le 04-07-2005 à 11:45:03    

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

Reply

Marsh Posté le 04-07-2005 à 11:48:38    

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 ?
 

Reply

Marsh Posté le 04-07-2005 à 11:51:36    

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????

Reply

Marsh Posté le 04-07-2005 à 15:19:02    

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

Reply

Marsh Posté le 04-07-2005 à 16:43:08    

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
Reply

Marsh Posté le 04-07-2005 à 16:46:23    

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?

Reply

Marsh Posté le 04-07-2005 à 16:57:21    

ptet un pb de droits, à vérifier

Reply

Marsh Posté le 05-07-2005 à 23:13:47    

$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);  
 

Reply

Marsh Posté le 05-07-2005 à 23:13:47   

Reply

Marsh Posté le 06-07-2005 à 00:08:34    

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

Reply

Marsh Posté le 06-07-2005 à 00:37:06    

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.

Reply

Marsh Posté le 06-07-2005 à 09:32:50    

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:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed