línea de comando php en windows

Estoy usando php on WAMP. Estoy tratando de ejecutar un programa externo prog.exe en el directorio abc que toma un parámetro numérico. el siguiente comando en la línea de comandos de DOS funciona bien

c:\abc\prog.exe 1234

pero cuando lo hago en script php no se ejecuta.

$val="1234";
$comm = passthru("C:\abc\prog.exe ".$val)

pero

$comm = passthru("dir");
echo $comm; 

funciona bien.

Estoy ejecutando Windows 7.

pd yo también he probado system() y shell_exec()

preguntado el 12 de junio de 12 a las 20:06

¿A qué te refieres con 'no funciona'? ¿Como en prog.exe no está recibiendo los argumentos? -

la página parece estar cargando pero no pasa nada hasta que se agota el tiempo de espera.. -

prog.exe está obteniendo el argumento... hago eco (lo que sea que esté pasando a través del sistema) y luego lo ejecuto en la línea de comando, está bien... -

¿Qué hace tu programa? Si un programa se inicia con esta función, para que continúe ejecutándose en segundo plano, la salida del programa debe redirigirse a un archivo u otro flujo de salida. Si no lo hace, PHP se bloqueará hasta que finalice la ejecución del programa. aquí -

La respuesta de @Kolink debería resolverlo :) -

1 Respuestas

\ necesita ser escapado como \\, o de lo contrario debe usar comillas simples.

YA SEA:

passthru("C:\\abc\\prog.exe ".$val);

O:

passthru('C:\abc\prog.exe '.$val);

Respondido el 12 de junio de 12 a las 20:06

@bsdnoobz Um... ¿No lo creo? - Niet el oscuro Absol

Or passthru("C:/abc/prog.exe $val"); - Eugen Riek

@Kolink Vaya, tienes razón. No me di cuenta de la comilla simple. - fluir libremente

@Kolink Ambos no funcionan. ¿Puede ser un problema de permiso o algo así? ¿Cuál debería ser el equivalente de chmod en Windows? ¿Tiene que dar derechos de ejecución abc.exe? - Anuncio

Considere ejecutar su script a través de la CLI de PHP. De esa manera, deberías poder ver todo lo que está haciendo, así como matarlo si tarda demasiado. - Niet el oscuro Absol

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.