W języku C# WPF: Chcę wykonać polecenie CMD, w jaki sposób programowo można wykonać polecenie cmd?Wykonaj polecenie CMD z kodu
Odpowiedz
Pytasz, jak wyświetlić okna poleceń? Jeśli tak, to można użyć Process object ...
Process.Start("cmd");
Korzystanie Process.Start:
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("example.txt");
}
}
Argh: D nie najszybszą
Process.Start("notepad C:\test.txt");
Oto prosty przykład:
Process.Start("cmd","/C copy c:\\file.txt lpt1");
Próbuję tego, ale drugi parametr, tak naprawdę argument nie jest przekazywany do okna poleceń, przynajmniej nie w Windows 8.1 – William
@ William Testowałem to w Windows 10 i działa poprawnie. –
@MahdiRafatjah Testowałem to w systemie Windows 7 i to również nie działa ... idk ... –
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
Ś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
Och nvm, naprawiłem to. Wielkie dzięki, Carlo. Naprawdę dobry pomysł, bardzo pomógł. – Jake
Bez problemu, cieszę się, że mogę pomóc! Nie zapomnij oznaczyć tego jako prawidłowej odpowiedzi. – Carlo
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".
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);
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 !!
"pro.StartInfo = pro;" powinno być "pro.StartInfo = proStart;" tak? – amalgamate
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. –