In C# WPF: Ich möchte einen CMD-Befehl ausführen, wie genau kann ich einen Befehl cmd programmgesteuert ausführen?Führen Sie CMD-Befehl von Code
Antwort
Fragen Sie, wie Sie ein Befehlsfenster aufrufen? Wenn ja, können Sie die Process object verwenden ...
Process.Start("cmd");
Process.Start Verwendung:
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("example.txt");
}
}
Argh: D nicht die schnellste
Process.Start("notepad C:\test.txt");
Hier ist ein einfaches Beispiel:
Process.Start("cmd","/C copy c:\\file.txt lpt1");
Ich versuche das, aber der zweite Parameter, das Argument wird nicht wirklich an das Befehlsfenster übergeben, zumindest nicht in Windows 8.1 – William
@William Ich habe dies in Windows 10 getestet und es funktioniert einwandfrei. –
@MahdiRafatjah Ich habe das in Windows 7 getestet und es funktioniert auch nicht ... idk ... –
H ow über Sie eine Batch-Datei mit dem Befehl creat Sie wollen, und nennen Sie es mit Process.Start
dir.bat Inhalt:
dir
dann rufen:
Process.Start("dir.bat");
Wird die Fledermaus nennen Datei und führen Sie das Verzeichnis
Großartige Idee! Ich habe den Process.Start ("test.bat") ausgeführt, aber ein Fehler erscheint mit der Meldung "Eine nicht behandelte Ausnahme des Typs 'System.ComponentModel.Win32Exception' ist in System.dll aufgetreten". Irgendwelche Ideen? – Jake
Oh nvm, reparierte es. Vielen Dank Carlo. Wirklich gute Idee, hat mir sehr geholfen. – Jake
Kein Problem, froh, dass ich helfen konnte! Vergessen Sie nicht, dies als die richtige Antwort zu markieren. – Carlo
Wie die anderen Antworten erwähnt können Sie:
Process.Start("notepad somefile.txt");
Es gibt jedoch einen anderen Weg.
können Sie beispielsweise ein Prozessobjekt und rufen Sie das Startinstanzmethode:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.WorkingDirectory = "c:\temp";
process.StartInfo.Arguments = "somefile.txt";
process.Start();
es auf diese Weise tun können Sie weitere Optionen konfigurieren, bevor Sie den Vorgang starten. Das Process-Objekt ermöglicht es Ihnen auch, während der Ausführung Informationen über den Prozess abzurufen, und Sie erhalten eine Benachrichtigung (über das Exited-Ereignis), wenn der Prozess abgeschlossen ist.
Zusatz: Vergessen Sie nicht, 'process.EnableRaisingEvents' auf 'true' zu setzen, wenn Sie das 'Exited' Event haken wollen.
wenn Sie wollen Anwendung starten mit cmd diesen Code verwenden:
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);
diese Weise können Sie cmd in C# arbeiten:
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();
Vergessen Sie nicht zu schreiben /c vor Ihrem Argument !!
"pro.StartInfo = pro;" sollte "pro.StartInfo = proStart;" Ja? – amalgamate
ich weiß nicht viel über c, C++ oder C#, aber ich würde empfehlen, es zu programmieren, um den Code in eine Batchdatei zu schreiben, die Batchdatei auszuführen und dann die Batchdatei zu löschen. –