2009-08-10 14 views
27

W języku C# WPF: Chcę wykonać polecenie CMD, w jaki sposób programowo można wykonać polecenie cmd?Wykonaj polecenie CMD z kodu

+0

Nie wiem zbyt wiele o c, C++ lub C#, ale polecam programowanie go w celu napisania kodu do pliku wsadowego, uruchomienia pliku wsadowego, a następnie usunięcia pliku wsadowego. –

Odpowiedz

1

Pytasz, jak wyświetlić okna poleceń? Jeśli tak, to można użyć Process object ...

Process.Start("cmd"); 
10

Korzystanie Process.Start:

using System.Diagnostics; 

class Program 
{ 
    static void Main() 
    { 
     Process.Start("example.txt"); 
    } 
} 
2

Argh: D nie najszybszą

Process.Start("notepad C:\test.txt"); 
35

Oto prosty przykład:

Process.Start("cmd","/C copy c:\\file.txt lpt1"); 
+3

Próbuję tego, ale drugi parametr, tak naprawdę argument nie jest przekazywany do okna poleceń, przynajmniej nie w Windows 8.1 – William

+0

@ William Testowałem to w Windows 10 i działa poprawnie. –

+0

@MahdiRafatjah Testowałem to w systemie Windows 7 i to również nie działa ... idk ... –

5

H ow o creat plik wsadowy z poleceniem chcesz, i nazywają to z Process.Start

zawartość dir.bat:

dir 

następnie zadzwonić:

Process.Start("dir.bat"); 

wezwie bat pliku i wykonać DIR

+0

Świetny pomysł! Zrobiłem Process.Start ("test.bat"), ale pojawia się komunikat o błędzie "Nieobsługiwany wyjątek typu" System.ComponentModel.Win32Exception "wystąpił w System.dll". Jakieś pomysły? – Jake

+1

Och nvm, naprawiłem to. Wielkie dzięki, Carlo. Naprawdę dobry pomysł, bardzo pomógł. – Jake

+0

Bez problemu, cieszę się, że mogę pomóc! Nie zapomnij oznaczyć tego jako prawidłowej odpowiedzi. – Carlo

20

Jak wspomniano przez innych odpowiedzi można użyć:

Process.Start("notepad somefile.txt"); 

Istnieje jednak inny sposób.

Można instancja obiektu Process i wywołać metodę start instancji:

Process process = new Process(); 
    process.StartInfo.FileName = "notepad.exe"; 
    process.StartInfo.WorkingDirectory = "c:\temp"; 
    process.StartInfo.Arguments = "somefile.txt"; 
    process.Start(); 

robi to w ten sposób można skonfigurować więcej opcji przed rozpoczęciem procesu. Obiekt Process pozwala również na uzyskanie informacji o procesie podczas jego wykonywania, a po zakończeniu procesu otrzyma powiadomienie (za pośrednictwem zdarzenia Exited).

Dodawanie: Nie zapomnij ustawić "process.EnableRaisingEvents" na "true", jeśli chcesz podłączyć wydarzenie "Exited".

9

jeśli chcesz uruchomić aplikację z cmd użyć tego kodu:

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); 
3

można użyć tego do pracy cmd w 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(); 

Nie zapomnij napisać /c przed swoim argumentem !!

+0

"pro.StartInfo = pro;" powinno być "pro.StartInfo = proStart;" tak? – amalgamate

Powiązane problemy