In C# WPF: Voglio eseguire un comando CMD, in che modo è possibile eseguire esattamente un comando cmd a livello di codice?Esegui comando CMD dal codice
risposta
Stai chiedendo come aprire un comando di Windows? In tal caso, è possibile utilizzare il Process object ...
Process.Start("cmd");
Utilizzando Process.Start:
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("example.txt");
}
}
Argh: D non il più veloce
Process.Start("notepad C:\test.txt");
Ecco un semplice esempio:
Process.Start("cmd","/C copy c:\\file.txt lpt1");
Ci sto provando, ma il secondo parametro, l'argomento non viene realmente passato alla finestra di comando, almeno non in Windows 8.1 – William
@William Ho provato questo in Windows 10 e funziona correttamente. –
@MahdiRafatjah Ho provato questo in Windows 7 e anche non funziona ... IDK ... –
H ow su di te creat un file batch con il comando desiderato, e chiama con Process.Start
contenuti dir.bat:
dir
quindi chiamare:
Process.Start("dir.bat");
chiamerà il pipistrello il file ed eseguire il dir
Ottima idea! Ho fatto il Process.Start ("test.bat") ma un errore si apre dicendo "Un'eccezione non gestita di tipo 'System.ComponentModel.Win32Exception' si è verificato in System.dll". Qualche idea? – Jake
Oh nvm, risolto. Grazie mille Carlo. Davvero una buona idea, ha aiutato molto. – Jake
Nessun problema, felice di poterti aiutare! Non dimenticare di contrassegnarlo come la risposta corretta. – Carlo
Come già detto dalle altre risposte è possibile utilizzare:
Process.Start("notepad somefile.txt");
Tuttavia, c'è un altro modo.
È possibile esempio un oggetto di processo e chiamare il metodo di istanza di avvio:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.WorkingDirectory = "c:\temp";
process.StartInfo.Arguments = "somefile.txt";
process.Start();
Facendo in questo modo permette di configurare diverse opzioni prima di iniziare il processo. L'oggetto Processo consente inoltre di recuperare informazioni sul processo mentre è in esecuzione e fornirà una notifica (tramite l'evento Exited) al termine del processo.
Aggiunta: non dimenticare di impostare 'process.EnableRaisingEvents' su 'true' se si desidera agganciare l'evento 'Exited'.
se si desidera avviare un'applicazione con cmd utilizzare questo codice:
string YourApplicationPath = "C:\\Program Files\\App\\MyApp.exe"
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.WindowStyle = ProcessWindowStyle.Hidden;
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = Path.GetDirectoryName(YourApplicationPath);
processInfo.Arguments = "/c START " + Path.GetFileName(YourApplicationPath);
Process.Start(processInfo);
È possibile utilizzare questo per lavorare cmd in C#:
ProcessStartInfo proStart = new ProcessStartInfo();
Process pro = new Process();
proStart.FileName = "cmd.exe";
proStart.WorkingDirectory = @"D:\...";
string arg = "/c your_argument";
proStart.Arguments = arg;
proStart.WindowStyle = ProcessWindowStyle.Hidden;
pro.StartInfo = pro;
pro.Start();
Non dimenticare di scrivere /c prima del tuo argomento !!
"pro.StartInfo = pro;" dovrebbe essere "pro.StartInfo = proStart;" sì? – amalgamate
Non so molto di c, C++ o C#, ma consiglierei di programmarlo per scrivere il codice in un file batch, eseguire il file batch e quindi eliminare il file batch. –