Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Script batch in console
Forum - C# / VB.NET - [VB.NET] Script batch in console

Avatar
Piowere (Normal User)
Pro


Messaggi: 102
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 19:02
Sabato, 07/01/2012
Salve a tutti, c'è un modo per visualizzare l'output di uno script batch nella console di un programma in VisualBasic.Net:-?


Anche se le leggi della matematica si riferiscono alla realtà, non possiedono una veridicità assoluta, e se l'avessero, allora non si riferirebbero alla realtà.

Albert Einstein
PM Quote
Avatar
und3r6r0und_ (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 13:58
Domenica, 08/01/2012
premetto che io uso il linguaggio c#, ma il proncipio di base è lo stesso
se non ricordo male dovresti fare cosi:


Codice sorgente - presumibilmente C# / VB.NET

  1. string commandLine = //Comanda batch da mandare
  2. ProcessStartInfo PSI = new ProcessStartInfo("cmd.exe");
  3. PSI.RedirectStandardInput = true;
  4. PSI.RedirectStandardOutput = true;
  5. Process p = Process.Start(PSI);
  6. System.IO.StreamWriter SW = p.StandardInput;
  7. SW.WriteLine(commandLine);//mandi comando
  8. System.IO.StreamReader SR = p.StandardOutput;
  9. SR.readLine();//leggi l'output della console


Ultima modifica effettuata da und3r6r0und_ il 08/01/2012 alle 14:05
PM Quote
Avatar
Piowere (Normal User)
Pro


Messaggi: 102
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 18:01
Domenica, 08/01/2012
ciao, ho convertito il programma in vb.net in questo modo:
Codice sorgente - presumibilmente VB.NET

  1. Sub Main()
  2.         Dim commandLine As String = "C:\hello.bat"
  3.         Dim PSI As New ProcessStartInfo("cmd.exe")
  4.         PSI.RedirectStandardInput = True
  5.         PSI.RedirectStandardOutput = True
  6.         PSI.UseShellExecute = False
  7.         Dim p As Process = Process.Start(PSI)
  8.         Dim SW As System.IO.StreamWriter = p.StandardInput
  9.         SW.WriteLine(commandLine)
  10.         Dim SR As System.IO.StreamReader = p.StandardOutput
  11.         SR.ReadLine()
  12.         Console.Read()
  13.     End Sub



ma non funziona... la console rimane nera... -.-"
P.S.: se avvio il batch funziona regolarmente

Ultima modifica effettuata da Piowere il 08/01/2012 alle 18:11


Anche se le leggi della matematica si riferiscono alla realtà, non possiedono una veridicità assoluta, e se l'avessero, allora non si riferirebbero alla realtà.

Albert Einstein
PM Quote
Avatar
und3r6r0und_ (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 22:25
Domenica, 08/01/2012
sostituisci:
Codice sorgente - presumibilmente Plain Text

  1. SR.ReadLine()
  2. Console.Read()



con

Codice sorgente - presumibilmente Plain Text

  1. Console.Writeline(SR.readline())



cosi dovrebbe andare =)
(se scrive la riga sbagliata fai un while di quel comando =)

PM Quote
Avatar
Piowere (Normal User)
Pro


Messaggi: 102
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 18:35
Lunedì, 09/01/2012
... non funziona, ci ho già provato, così ho provato a modificare un po' il codice:

Codice sorgente - presumibilmente VB.NET

  1. Dim psi As New ProcessStartInfo("ipconfig")
  2.             psi.UseShellExecute = False
  3.             psi.RedirectStandardOutput = True
  4.             Dim proc As Process = Process.Start(psi)
  5.             proc.WaitForExit()
  6.             Dim output As String = proc.StandardOutput.ReadToEnd()
  7.             Console.Write(output)
  8.             Console.Read(



in questo modo posso usare qualsiasi comando batch, anche usandoli in riga di comando, grazie comunque :k:

Ultima modifica effettuata da Piowere il 09/01/2012 alle 18:37


Anche se le leggi della matematica si riferiscono alla realtà, non possiedono una veridicità assoluta, e se l'avessero, allora non si riferirebbero alla realtà.

Albert Einstein
PM Quote
Avatar
und3r6r0und_ (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 18:50
Lunedì, 09/01/2012
ok, sono felice che hai risolto, mi dispiace non essere stato più d'aiuto =)

PM Quote