Foros del Web » Programando para Internet » PHP »

Ejecutar .BAT en PHP

Estas en el tema de Ejecutar .BAT en PHP en el foro de PHP en Foros del Web. Bueno visto que el otro post que yo creé para enlazar en php un exec() hacia este otro tema, creo este tema que tiene el ...
  #1 (permalink)  
Antiguo 15/07/2008, 07:17
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Ejecutar .BAT en PHP

Bueno visto que el otro post que yo creé para enlazar en php un exec() hacia este otro tema, creo este tema que tiene el título que lo identifica mejor. Bien, el problema que tengo es el siguiente: Antes de decir nada me gustaría indicar que tengo el SO windows S2003 y el Safe_Mode del php.ini está OFF.

Bien, el problema es el siguiente: Estoy intentando ejecutar un archivo.bat desde PHP para no tener que hacerlo manualmente, ya que lo que hago mediante código php es crear este archivo bat según los datos introducidos en un formulario y cada vez este archivo bat se sobreescribe , por lo tanto es esencial ejecutarlo desde una página web para no tener que estar dependiendo si se ha rellenado o no ese formulario.

Para ejecutar este archivo bat lo he intentado de varios métodos: exec (archivo.bat), exec (ruta/del/archivo.bat), exec (C:/Windows/cmd.exe /c C:/ruta/del/archivo.bat) y estos métodos los he intentado también con system(), shell_exec(), y alguno más que no recuerdo como era. También he hecho el proceso para que apache pueda interactuar con el escritorio (ejecutando services.mcs y activandolo allí y acto seguido reiniciar el apache) pero nada... sigue sin ejecutarse el maldito archivo.bat. También he provado a ejecutarlo manualmente y funciona a la perfección, ya que la función de este bat es copiar los archivos de una carpeta a otra.


Espero que alguien me pueda ayudar, y si se necesita cobrar algo.. lo hablaremos.

Un saludo.
  #2 (permalink)  
Antiguo 15/07/2008, 08:08
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Ejecutar .BAT en PHP

<?php
if(isset($_POST['submit']))
{
echo exec('download.ftp');
echo exec('start.bat');
echo "Done!";
} else {
// display the form
?>
<form action="" method="post">
<input type="submit" name="submit" value="DO IT!">
</form>
<?php
}
?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #3 (permalink)  
Antiguo 15/07/2008, 09:56
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Ejecutar .BAT en PHP

ya lo probé y no funciona
  #4 (permalink)  
Antiguo 15/07/2008, 13:49
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Ejecutar .BAT en PHP

¿Alguna solución que no sea de google? he buscado todo el dia en google y TODO lo que he encontrado no funciona... La mayoría son posts sin resolver... ( por no decir todos)
  #5 (permalink)  
Antiguo 15/07/2008, 14:48
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: Ejecutar .BAT en PHP

Hola,
Encontre esto, pero no se si te ayudara mucho:
http://ar2.php.net/manual/es/languag....execution.php
http://ar2.php.net/manual/es/languag...tion.php#29479
http://ar2.php.net/manual/es/languag...tion.php#29481
http://ar2.php.net/manual/es/languag...tion.php#60001
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #6 (permalink)  
Antiguo 15/07/2008, 17:13
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Ejecutar .BAT en PHP

http://ve.php.net/manual/en/function.exec.php
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #7 (permalink)  
Antiguo 15/07/2008, 18:26
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Ejecutar .BAT en PHP

Muchas gracias pato12 y eddwinpaz.

He encontrado uno : http://ve.php.net/manual/en/function.exec.php#81543 pero no se realmente que es a lo que se refiere, si alguien me puede ayudar se lo agracedería.

Cita:
You can embed php into a batch file so that it is essentially "double-click" to run. This might be useful for script that does search and replace in numerous files or other tedious task that are too complex for batch files but don't warrant greater attention. Its really quite simple I'm sure someone has thought of it before. You can add whatever batch code you want after :START just make sure you exit before you get to */ so Windows doesn't fuss. @php %0 basically is saying "Open this file with php and run its php code". Obviously its really only a useful trick on Windows, I only really use it for update scripts on our company's servers. I suppose you could also just set Windows to open php files with php.exe but that seems like a rather stupid thing to do as you would most often want to edit php files, not run them directly. @pause is optional of course, but you may want to look at what php outputted to the command line before it exits.

example.bat:

@GOTO START
<?php

...php code...

/*
:START
...batch code...
@php %0
@pause
@exit
*/
?>
Un saludo y gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:13.