La domanda è auto-esplicativa. Sarebbe bello se il codice fosse lungo una riga (qualcosa ha a che fare con "Process.Start("...")
"?). Ho fatto ricerche sul web ma ho trovato solo vecchi esempi e simili che non funzionano (almeno per me). Voglio usare questo nella mia libreria di classi, per eseguire comandi Git (se questo aiuta?).Come eseguire i comandi DOS/CMD/Command Prompt da VB.NET?
risposta
Si potrebbe provare questo metodo:
Public Class MyUtilities
Shared Sub RunCommandCom(command as String, arguments as String, permanent as Boolean)
Dim p as Process = new Process()
Dim pi as ProcessStartInfo = new ProcessStartInfo()
pi.Arguments = " " + if(permanent = true, "/K" , "/C") + " " + command + " " + arguments
pi.FileName = "cmd.exe"
p.StartInfo = pi
p.Start()
End Sub
End Class
chiamata, ad esempio, in questo modo:
MyUtilities.RunCommandCom("DIR", "/W", true)
EDIT: Per il comando multipla su una linea chiave sono il & | & & e || connettori comando
- A & B → eseguire il comando A, quindi eseguire il comando B.
- A | B → eseguire il comando A, e reindirizzare tutto il suo output nella ingresso di comando B.
- A & & B → eseguire il comando A, valutare l'errorlevel dopo l'esecuzione comando A, e se il codice di uscita (errorlevel) è 0, solo allora esegui il comando B.
- A || B → eseguire un comando, valutare il codice di uscita di questo comando e se è tutt'altro che 0, solo allora eseguire il comando B.
Ciao! Ho usato questo codice (https://gist.github.com/2465024) e quando eseguo il comando (ho cambiato il nome in "' runCommand' "e l'ho usato - quindi non è questo il problema!), Ottengo un" 'Il riferimento a un membro non condiviso richiede un riferimento oggetto." Errore. Qualche idea, perché? –
BTW, funziona quando è nella stessa classe, tuttavia l'ho usato in una libreria di classi, che ho importato nel mio progetto Windows Forms. Qualche idea sul perché non funziona? –
Inoltre, c'è un modo per eseguire più comandi contemporaneamente. Qualcosa come "' Nascondi cmd, esegui il primo comando, nascondi cmd, esegui il secondo comando, mostra cmd' ". –
si può provare questo di eseguire il comando Poi cmd
Esce
Process.Start("cmd", "/c YourCode")
Si può provare questo per eseguire il comando And Let cmd
aspettare per più comandi
Process.Start("cmd", "/k YourCode")
Sub systemcmd(ByVal cmd As String)
Shell("cmd /c """ & cmd & """", AppWinStyle.MinimizedFocus, True)
End Sub
Imports System.IO
Public Class Form1
Public line, counter As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
counter += 1
If TextBox1.Text = "" Then
MsgBox("Enter a DNS address to ping")
Else
'line = ":start" + vbNewLine
'line += "ping " + TextBox1.Text
'MsgBox(line)
Dim StreamToWrite As StreamWriter
StreamToWrite = New StreamWriter("C:\Desktop\Ping" + counter + ".bat")
StreamToWrite.Write(":start" + vbNewLine + _
"Ping -t " + TextBox1.Text)
StreamToWrite.Close()
Dim p As New System.Diagnostics.Process()
p.StartInfo.FileName = "C:\Desktop\Ping" + counter + ".bat"
p.Start()
End If
End Sub
End Class
Questo funziona così
Non è la mia risposta, e non dico che questa è o non è una buona risposta, ma se non sei votato per favore spiega perché. È vantaggioso per gli altri sapere perché questa non è stata considerata una buona soluzione. –
Sono stato ispirato dalla risposta di Steve, ma ho pensato di aggiungere un po 'di flare ad esso. Mi piace lavorare in anticipo sulla scrittura dei metodi di estensione, quindi in seguito ho meno lavoro da fare per chiamare il metodo.
Ad esempio, con la versione modificata della risposta di Steve seguito, invece di fare questa chiamata ...
MyUtilities.RunCommandCom("DIR", "/W", true)
posso effettivamente basta digitare il comando e lo chiamano dalle mie corde come questo ..
Direttamente nel codice.
Call "CD %APPDATA% & TREE".RunCMD()
O
Da una variabile.
Dim MyCommand = "CD %APPDATA% & TREE"
MyCommand.RunCMD()
O
Da una casella di testo. dovranno
textbox.text.RunCMD(WaitForProcessComplete:=True)
metodi di estensione ad essere immessi in un modulo pubblico e portare l'attributo <Extension>
sopra il sub. Sarà inoltre necessario aggiungere Imports System.Runtime.CompilerServices
all'inizio del file di codice.
Ci sono molte informazioni su SO su Extension Methods se hai bisogno di ulteriore aiuto.
Metodo di estensione
Public Module Extensions
''' <summary>
''' Extension method to run string as CMD command.
''' </summary>
''' <param name="command">[String] Command to run.</param>
''' <param name="ShowWindow">[Boolean](Default:False) Option to show CMD window.</param>
''' <param name="WaitForProcessComplete">[Boolean](Default:False) Option to wait for CMD process to complete before exiting sub.</param>
''' <param name="permanent">[Boolean](Default:False) Option to keep window visible after command has finished. Ignored if ShowWindow is False.</param>
<Extension>
Public Sub RunCMD(command As String, Optional ShowWindow As Boolean = False, Optional WaitForProcessComplete As Boolean = False, Optional permanent As Boolean = False)
Dim p As Process = New Process()
Dim pi As ProcessStartInfo = New ProcessStartInfo()
pi.Arguments = " " + If(ShowWindow AndAlso permanent, "/K", "/C") + " " + command
pi.FileName = "cmd.exe"
pi.CreateNoWindow = Not ShowWindow
If ShowWindow Then
pi.WindowStyle = ProcessWindowStyle.Normal
Else
pi.WindowStyle = ProcessWindowStyle.Hidden
End If
p.StartInfo = pi
p.Start()
If WaitForProcessComplete Then Do Until p.HasExited : Loop
End Sub
End Module
- 1. Come posso eseguire comandi esterni dal prompt dei comandi gdb?
- 2. Resize prompt dei comandi tramite i comandi
- 3. Come eseguire casi di test NUnit dal prompt dei comandi
- 4. Come eseguire .sh sul prompt dei comandi di Windows?
- 5. Come eseguire il programma Java nel prompt dei comandi
- 6. Come eseguire nodejs senza prompt dei comandi in windows?
- 7. Posso eseguire ssh da qualche parte, eseguire alcuni comandi e quindi lasciare un prompt?
- 8. Sendkeys dal prompt dei comandi
- 9. Come eseguire il programma java nel prompt dei comandi, creato da intellij
- 10. Come eseguire i comandi della shell da un'applicazione Mac/MacRuby?
- 11. Come eseguire i comandi zkCli.sh di zookeeper da bash?
- 12. Come leggere ed eseguire i comandi GDB da un file?
- 13. Come eseguire i comandi SVN da uno script Python?
- 14. Come aprire il prompt dei comandi e inserire i comandi utilizzando Java?
- 15. Come eseguire comandi di script da variabili?
- 16. Eseguire comandi Linux da Qt4
- 17. Come eseguire comandi bash da C?
- 18. Come eseguire i comandi USSD su Android?
- 19. UTF-8 nel prompt dei comandi
- 20. Come eseguire i comandi tramite processo figlio NodeJS?
- 21. impostazioni Rimuovere proxy da finestre prompt dei comandi
- 22. differenza tra prompt dei comandi e prompt anaconda
- 23. System.console() restituisce null da Eclipse, ma con prompt dei comandi
- 24. Come eseguire un'applicazione come "Esegui come amministratore" dal prompt dei comandi?
- 25. Come eseguire un programma dal prompt dei comandi come utente diverso e come amministratore
- 26. Come vedo i comandi eseguiti da GNU?
- 27. Ambiente pseudografico in Windows Prompt dei comandi
- 28. Python non funziona nel prompt dei comandi?
- 29. Replica prompt dei comandi con file batch
- 30. Prompt dei comandi di Visual Studio rispetto a un normale prompt dei comandi?
magari iniziare semplice con Process.Start ("C: \ Windows \ System32 \ MSPaint.exe") - poi una volta che si ottiene che andando iniziare a provare i comandi Git Immagino che ci sia molto più difficile con tutti gli altri argomenti della riga di comando. L'altro consiglio utile per aiutarti a capire cosa è sbagliato, è leggere l'errore StandardError, la risposta qui è un esempio perfetto: http://stackoverflow.com/questions/2709198/process-start-get-errors-from-command- prompt-window –