far eseguire un file

salve a tutti

io devo far eseguire un file .bat da una pagina php

come posso fare ? basta creare un semplice link in html con il percorso relativo ?

logicamente il file viene edìseguito solo sul server ....

grazie

 ???

inviato 9 anni fa
robo
robo
1
X 0 X

Se fai semplicemente il link credo che ti chieda di scaricare il file in questione...  :buck:

Altrimenti credo che puoi usare EXEC

 :bye:

risposto 9 anni fa
Marco Dario
modificato 9 anni fa
X 0 X

non è una funzione facile da usare

qualcuno a qualche link o mi può dare un esempio su come applicarla

sul sito  di php.net non ci capisco molto

grazie

 :-\

risposto 9 anni fa
robo
robo
1
X 0 X

Hai provato a fare:

exec('C:\miofile.bat')

E vedere se esegue il file?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

ciao

oltre al percorso del file non gli devi dare altro ?

a parte i permessi funzionera anche in linux ?

il mio obbiettivo è quello di farlo funzionare anche in linux : in questo caso do un cmd

grazie

risposto 9 anni fa
robo
robo
1
X 0 X

Hai provato a fare:

exec('C:\miofile.bat')

E vedere se esegue il file?

con windows funziona : il file viene eseguito !

io pensavo che cambiando il percorso ed eventuali permessi funzionasse anche in linux

invece ho qualche problema in più ....

risposto 9 anni fa
robo
robo
1
X 0 X

Personalmente non ho mai provato sotto linux però nella pagina di php.net ci sono vari esempi di script lanciati da exec sotto linux. Controlla i percorsi e i diritti sul file e vedrai che funziona!  ;)

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Non sono un esperto di linux, ma da quel poco che so gli script .bat in linux non possono essere avviati :s

In linux gli script vengono creati con l'estensione .sh se non erro

Hai provato a fare:

exec('C:\miofile.bat')

E vedere se esegue il file?

con windows funziona : il file viene eseguito !

io pensavo che cambiando il percorso ed eventuali permessi funzionasse anche in linux

invece ho qualche problema in più ....

risposto 9 anni fa
Toto007
X 0 X

sotto linux le estensioni non contanto, quello che conta è che il file sia dichiarato eseguibile (chmod +x), che si abbiamo i permessi di esecuzione e che, se si tratta di uno script, sia indicato nella prima riga del file il nome dell'interprete dei comandi che Linux utilizzerà per eseguire le successive istruzioni.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

in linux ho usato  un cmd  e un sh , ho controllato i permessi .. l' ho fatto eseguibile .. (uso linux suse e ho usato l'intefaccia grafica dei permessi ...)

Ma non ci sono riuscito ....

Con windows la scell si apre e il bat viene esguito ...

il problema è che il php si blocca e fino a quando il dat non ha finito !!!!

il bat apre una procedura che usa molto tempo .......

ho lasciato perdere ... la procedura dava più problemi che benefici ...

  :'(  :'(

 comunque grazie

risposto 9 anni fa
robo
robo
1
X 0 X
il problema è che il php si blocca e fino a quando il dat non ha finito !!!!

Il php si blocca anche sotto Windows?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

hai provato anche ad eseguire (su linux) il file a mano, tramite console? cosi sei sicuro se va o non va  :bye:

risposto 9 anni fa
Thesee
X 0 X

si il php si blocca anche con windows o almeno il mio sistema in locale si bloccava (la pagina non si elaborava e firefox rimaneva li a "girare a vuoto ".............

far andare a console il file è la prima cosa che ho fatto ancora prima di creare una soluzione con php ...... poi una volta creato il sistema in php ne ho provato altri ........

 :-[

risposto 9 anni fa
robo
robo
1
X 0 X

Il "problema" secondo me è dovuto al fatto che tutte le funzioni aspettano il termine del comando inviato alla shell per restituirne il risultato, la cosa è giusta ma non per il tuo caso a quanto pare.

Lo script termina correttamente una volta eseguito?

Quanto tempo ci impiega?

Edit:

Leggendo nel manuale (anche i commenti) per linux la soluzione potrebbe esser questa:

exec("nice $shellCmd > /dev/null 2>&1 &");

cioè esegue il comando reindirizzando l'output a null, così php non sta ad attendere.

Per windows potrebbe essere (uso il condizionale perchè ho provato solo con un "echo ciao"):

exec("$shellCmd > null");

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda