• Publicidad

Ejecutar .bat desde explorer

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ejecutar .bat desde explorer

Notapor alphabravo » 2009-03-04 01:58 @124

Hola. Tengo un archivo .pl. Si lo ejecuto me crea un .bat y lo ejecuta pero si lo abro desde el Internet Explorer dentro de la carpeta cgi me crea el archivo .bat y no lo ejecuta si no que lo muestra en el Explorer lo que está dentro del .bat y lo que yo quiero que haga es que se ejecute, ¿cómo puedo hacerlo?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(ARCHIVO, ">>prueba2.bat") || die "No se pudo abrir el archivo";
print ARCHIVO "start smscaster.exe -Compose $Variables{'numero'} $Variables{'mensaje'} -Start \n";
close(ARCHIVO);

system("C:/wamp/Apache2/cgi-bin/prueba2.bat");
exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739

Publicidad

Notapor explorer » 2009-03-04 04:16 @219

Debes entrar en la configuración del servidor web, y decirle que los ficheros terminados en .bat son ejecutables por cmd.exe o el ejecutable definido como línea de comandos en tu sistema.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor alphabravo » 2009-03-04 11:01 @501

¿Dónde entro? ¿en php.ini? ¿o en el de Apache? ¿Cómo le indico? y ya con esto cuando mande a llamar el .pl y se ejecute en el explorer ¿ya me va a ejecutar el .bat y no lo va a mostrar? salu2
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739

Notapor explorer » 2009-03-04 11:54 @538

Cambio de opinión. Te he aconsejado mal.

Veo que en el cgi estás ejecutando el fichero .bat.

Lo que puedes hacer es ejecutarlo con las comillas invertidas o con qx(), y esa salida, sacarla a pantalla con un print(). Algo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open(ARCHIVO, ">>prueba2.bat") || die "No se pudo abrir el archivo";
print ARCHIVO "smscaster.exe -Compose $Variables{'numero'} $Variables{'mensaje'} -Start \n";
close(ARCHIVO);

print qx(C:/wamp/Apache2/cgi-bin/prueba2.bat);

exit(1);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


En cuanto al cambio de configuración, debe hacerse en el del Apache.
Última edición por explorer el 2009-03-04 12:05 @545, editado 2 veces en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor alphabravo » 2009-03-04 11:59 @541

Ya lo hice pero me aparece esto en la ventana del explorer

Código: Seleccionar todo
C:\wamp\Apache2\cgi-bin>start smscaster.exe -Compose 2299119373 ssdew -Start 


y yo quiero que se ejecute el archivo. Quiero cuando se cree el archivo que se abra como que si una le diera dos clic, pero me muestra el interior del archivo. ¿Cómo puedo hacerlo? :(

Como estoy manejando con ese programa el puerto COM, por eso quiero que se ejecute el comando que está dentro del .bat y no que lo muestre.

el bat lo que tiene adentro es esto:

start smscaster.exe -Compose 2299119373 ssdew -Start

que si lo pongo en ejecutar lo hace, pero quiero que se pueda ejecutar desde php con .pl, por eso cree el .bat y a lo ultimo del .pl abrirlo pero no lo ejecuta :(
Última edición por alphabravo el 2009-03-04 12:06 @546, editado 1 vez en total
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739

Notapor explorer » 2009-03-04 12:04 @544

Hummm... a mí lo que me sobra es la palabra 'start'...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor alphabravo » 2009-03-04 12:13 @550

¿El primero? Le puse start porque va dentro del .bat para indicarle que ejecute esa línea.

Con el Perl traté de ejecutarlo directamente para no crear el .bat pero no lo hace:

system("C:/Archivos de programa/SMSCaster/smscaster.exe -Compose 2299119373 ssdew -Start");

Lo que quiero es ejecutar esta línea : smscaster.exe -Compose 2299119373 ssdew -Start

La manera que encontré fue creando un .bat. No sé si en Perl pueda ejecutarlo sin que se cree el .bat.
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739

Notapor explorer » 2009-03-04 12:33 @565

El comando START es para abrir una ventana de línea de comandos y, opcionalmente, ejecutar un comando que le pases.

Es muy raro que no funcione
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system('C:/Archivos de programa/SMSCaster/smscaster.exe -Compose 2299119373 ssdew -Start');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
dentro del programa Perl. Si el camino a smscaster.exe es correcto, debería de funcionar.

Puedes hacer la siguiente prueba: en una ventana de línea de comandos, prueba a ejecutar lo siguiente:
Código: Seleccionar todo
perl -e "system('C:/Archivos de programa/SMSCaster/smscaster.exe -Compose 2299119373 ssdew -Start')"
y mira a ver qué error sale.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor alphabravo » 2009-03-04 12:43 @571

Código: Seleccionar todo
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Luis Daniel>cd..

C:\Documents and Settings>cd..

C:\>perl -e "system('C:/Archivos de programa/SMSCaster/smscaster.exe -Compose 22
99119373 ssdew -Start')"
"C:/Archivos" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.


No supe cómo poner lo de los espacios en blanco y puse otra dirección:

Código: Seleccionar todo
C:\>perl -e "system('C:/00/00e.exe')" 


y sí lo ejecuta, ahora dentro del .pl que corro en cgi pongo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system("C:/00/00e.exe")
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y no hace nada :s ¿Por qué?
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739

Notapor explorer » 2009-03-04 13:07 @588

Pues no tengo ni idea... a ver si alguien más, que todavía use Windows para desarrollo, te puede ayudar.

Prueba a sacar el valor que devuelve system(), pero en su byte bajo (ver página de system()), para ver si el código de error da alguna pista.

¿No será un problema de permisos de Windows?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados

cron