Foros del Web » Programando para Internet » PHP »

Ejecutar un .bat con exec desde CMD

Estas en el tema de Ejecutar un .bat con exec desde CMD en el foro de PHP en Foros del Web. Hola que tal, como puedo ejecutar un archivo.bat desde cmd utilizando exec de php? realizé esto pero no me funcionó: Código PHP: exec ( "C:\\Windows\\System32\\cmd.exe cd\\ directoriodelarchivo.bat" ...
  #1 (permalink)  
Antiguo 16/06/2011, 17:03
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Ejecutar un .bat con exec desde CMD

Hola que tal, como puedo ejecutar un archivo.bat desde cmd utilizando exec de php? realizé esto pero no me funcionó:

Código PHP:
exec("C:\\Windows\\System32\\cmd.exe cd\\ directoriodelarchivo.bat"$res); 
Tendré algun error en el código?
  #2 (permalink)  
Antiguo 16/06/2011, 17:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Ejecutar un .bat con exec desde CMD

intenta con:

Código PHP:
Ver original
  1. system("C:\\Windows\\System32\\cmd.exe", $res);

editando...

ahora que lo veo bien, no quieres abrir el cmd, quieres abrir un bat, en ese caso:

Código PHP:
Ver original
  1. exec("directoriodelarchivo.bat", $res);
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 16/06/2011, 17:08
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: Ejecutar un .bat con exec desde CMD

Se me olvido poner que tambie utilizé system(), pcntl_exec() y passthru() pero igual, el resultado que me daba, era la ruta del archivo, pero con un directorio antes de llegar al archivo y toda la cabecera del cmd en un array que seria $res
  #4 (permalink)  
Antiguo 16/06/2011, 17:11
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Ejecutar un .bat con exec desde CMD

ok, no necesitas especificar la ubicación del cmd.exe, solo la ubicación del bat
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 16/06/2011, 17:22
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: Ejecutar un .bat con exec desde CMD

ya lo ejecuté así, el resultado me muestra: C:\rutadelproyecto> contenidodelarchivobat
algun parametro que aga falta?
  #6 (permalink)  
Antiguo 17/06/2011, 10:46
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: Ejecutar un .bat con exec desde CMD

Como le ago para posicionarme en un directorio y ejecutar una linea de comando? le he intentado de la siguiente manera:

exec("cd dir\\carpeta comando", $res);

pero no me funciona
  #7 (permalink)  
Antiguo 17/06/2011, 11:54
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Ejecutar un .bat con exec desde CMD

Cita:
Iniciado por xtimed Ver Mensaje
ya lo ejecuté así, el resultado me muestra: C:\rutadelproyecto> contenidodelarchivobat
algun parametro que aga falta?
Si te devuelve eso es que seguramente ese bat no imprime texto, crea un bat que tenga esto:

Cita:
echo esto es una prueba
echo esto es una segunda linea
así tal cual en un archivo de texto y lo renombras a test.bat

luego haces esto:

Código PHP:
<?php
echo "SYSTEM<br>";
$resultado=system("test.bat");
echo 
$resultado."<br>";

echo 
"EXEC<br>";
$resultado=exec("test.bat");
echo 
$resultado;

echo 
"shell_execc<br>";
$resultado=shell_exec("test.bat");
echo 
$resultado;
?>
para que veas los 3

según recuerdo me parece qe system() te traerá algo así:

ubicacion>test.bat esto es una pruebaesto es una prueba ubicacion>esto es una segunda lineaesto es una segunda lineaesto es una segunda linea

por que los saltos de linea no tienen <br>

y en exec() solo obtendrás la última linea:

esto es una segunda linea
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 17/06/2011, 11:59
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Ejecutar un .bat con exec desde CMD

Cita:
Iniciado por xtimed Ver Mensaje
Como le ago para posicionarme en un directorio y ejecutar una linea de comando? le he intentado de la siguiente manera:

exec("cd dir\\carpeta comando", $res);

pero no me funciona
para entrar a un directorio y ejecutar un archivo solo escribe toda la ruta, es la forma mas facil:

"c:\\carpeta\\carpeta\\archivo.bat"

si quieres ejecutar un comando por ejemplo rename, puedes escribir toda la ruta tambien

"rename c:\\carpeta\\carpeta\\archivo.bat c:\\carpeta\\carpeta\\archivo2.bat"

no te recomiendo navegar por carpetas usando CD, mira los ejemplos de php.net:

http://php.net/manual/es/function.exec.php
http://php.net/manual/es/function.system.php
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: bat, exec
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.
Respuesta




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