Oppure

Loading
26/12/16 20:05
lumo
Prova a spostare il file in un'altra cartella e usare quella, magari il fatto che sta sotto C:\ è il problema?
Inoltre dalla documentazione vedo che Process.Start ritorna un bool, guarda che risultato ti dà.
Ultima modifica effettuata da lumo 26/12/16 20:05
aaa
26/12/16 20:07
Milo007
ma la mia applicazione ha i permessi d'amministrazione , quindi non penso possa essere quello il problema
aaa
26/12/16 20:09
Milo007
il file bat viene generato da questo codice

  For Indice As Short = 2 To ListaComandi.Items.Count + 2
                    IO.File.AppendAllLines("C:\install.bat" & ListaComandi.Items(1).ToString, {ListaComandi.Items.Item(Indice)})
                Next


se avvio manualmente il file funziona.

ma con
Process.Start("C:\install.bat")


non va
Ultima modifica effettuata da Milo007 27/12/16 20:50
aaa
26/12/16 20:18
Milo007
Postato originariamente da lumo:

Prova a spostare il file in un'altra cartella e usare quella, magari il fatto che sta sotto C:\ è il problema?
Inoltre dalla documentazione vedo che Process.Start ritorna un bool, guarda che risultato ti dà.


come faccio a vedere che risultato da ?
aaa
27/12/16 14:38
Milo007
Nessuno che sa dove potrebbe essere il problema?
aaa
27/12/16 16:00
GN
Non uso .net da un po', ma essendo uno script batch e non un eseguibile binario, potrebbe essere necessario avviarlo passandolo come argomento alla shell di Windows (cmd.exe):
Process.Start("cmd.exe", "/C C:\install.bat")

Utilizza la versione di Process.Start che prende due stringhe, una per l'eseguibile da lanciare e una per gli argomenti della riga di comando (in teoria dovrebbe funzionare anche concatenando le due stringhe, cioè Process.Start("cmd.exe /C C:\install.bat";), ma siccome c'è l'overload che prevede la separazione tra programma e argomenti non vedo perchè non sfruttarlo). La /C è l'opzione della shell che fa eseguire il comando specificato (in questo caso lo script C:\install.bat) e poi termina (come spiegato nell'help della shell stessa, a cui si può accedere digitando cmd /? in una finestra del prompt dei comandi).
aaa
27/12/16 16:47
Ma poi, che fai in questo batch? Perché lo usi e non esegui i comandi che servono da vb?
27/12/16 19:08
Milo007
Il file .bat è per una questione di comodità personale... è un po complesso da spiegare..
Comunque mi sono accorto che se elimino la parte del codice che genera il .bat

  For Indice As Short = 2 To ListaComandi.Items.Count + 2 
                    IO.File.AppendAllLines("C:\install.bat" & ListaComandi.Items(1).ToString, {ListaComandi.Items.Item(Indice)}) 
                Next 


, e lo creo manualmente l'applicazione riesce ad avviarlo 8-|
Ultima modifica effettuata da Milo007 27/12/16 20:53
aaa