PDA

Visualizza la versione completa : [perl] exe con passaggio di parametri


Alberto
16-11-2009, 13:25
E' possibile far eseguire un exe passandogli anche dei parametri di esecuzione come utente, password ed altre impostazioni di esecuzione?

Mich_
16-11-2009, 15:07
In linea di massima si`, ma devi essere piu` preciso.

Chi deve lanciare l'exe? Un programma Perl stand alone? Un CGI (in Perl o altro)?
Occorre passaggio di parametri da client a server?

Inoltre ci sono sistemi che, per motivi di sicurezza, limitano l'accesso a programmi provenienti dal Web o legati al Web: poer questo devi chiedere al gestore del Webserver o del Server.

Alberto
16-11-2009, 16:36
E' un programma stand alone che esegue un exe che risiede sulla stessa macchina, problemi di blocchi non dovrei averne perché la macchina server è gestita da me.

In pratica devo lanciare un'exe scritto in vb6 con dei parametri, fra cui anche user e password, fino ad ora la cosa viene gestita con dei batch dos che per vari motivi vorrei sostituire con dei programmi perl.

Mich_
16-11-2009, 17:07
Che io sappia ci sono tre modi:
- funzione system ...
- funzione exec ...
- apici all'indietro: `...`

Il comportamento nei tre casi e` leggermente diverso.
system attende la fine del processo per proseguire con il resto dello script, mentre exec non lo fa (prosegue lo script in parallelo all'esecuzione del programma esterno; gli apici all'indietro dovrebbe essere molto simile a system, ma non ricordo piu` bene.
Chiaramente trovi dettagli maggiori nel man perlfunc (system e exec) e in altro man riferito al perl per gli apici.

Alberto
19-11-2009, 10:10
ottimo, quindi posso fare così...


system("filedsp QM055 %CODA% %1:\spazio_ania\I%4\Output\%2 /u spuser /p spuser /s I000%4 /w %3 /c %3 /o DAta /o VAR /o CRLF /O 32000 /o ZCOmp /o BYR /v")

filedsp è l'exe...

appena posso provo

intanto grazie :D

shishii
19-11-2009, 18:42
Gli apici inversi servono quando devi raccogliere l'outut del programma invocato, ad esempio:

$output = `programma`;

Loading