2009-08-10 5 views
27

В C# WPF: Я хочу выполнить команду CMD, как точно я могу выполнить команду cmd программно?Выполнение команды CMD из кода

+0

Я не знаю много о c, C++ или C#, но я бы рекомендовал программировать его, чтобы написать код в пакетный файл, запустить командный файл, а затем удалить командный файл. –

ответ

1

Вы спрашиваете, как вызвать командные окна? Если да, то вы можете использовать Process object ...

Process.Start("cmd"); 
10

Использование Process.Start:

using System.Diagnostics; 

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

Argh: D не самый быстрый

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

Вот простой пример:

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

Я пытаюсь, но второй параметр, аргумент не передается в командное окно, по крайней мере, не в Windows 8.1 – William

+0

@William Я тестировал это в Windows 10 и работает правильно. –

+0

@MahdiRafatjah Я тестировал это в Windows 7, и он тоже не работает ... idk ... –

5

H ой о вас создающих пакетный файл с помощью команды вы хотите, и называть его Process.Start

содержание dir.bat:

dir 

тогда звоните:

Process.Start("dir.bat"); 

Позвоню битой файл и выполнить Dir

+0

Отличная идея! Я выполнил Process.Start ("test.bat"), но появляется сообщение об ошибке: «Необработанное исключение типа« System.ComponentModel.Win32Exception »произошло в System.dll». Есть идеи? – Jake

+1

О нвм, исправил его. Большое спасибо Карло. Действительно хорошая идея, много помогала. – Jake

+0

Без проблем, рад, что я мог бы помочь! Не забудьте отметить это как правильный ответ. – Carlo

20

Как уже упоминалось другими ответами вы можете использовать:

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

Однако есть и другой способ.

Вы можете экземпляр объекта Process и вызовите метод Start:

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

Действовать таким образом позволяет настраивать дополнительные параметры перед началом процесса. Объект Process также позволяет вам получать информацию о процессе во время его выполнения, и после завершения процесса вы получите уведомление (через событие «Выход»).

Дополнение: Не забудьте установить «process.EnableRaisingEvents» в «true», если вы хотите подключить событие «Выход».

9

, если вы хотите, чтобы запустить приложение с CMD использовать этот код:

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

Вы можете использовать это, чтобы работать CMD в 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(); 

Не забудьте написать /c перед тем аргумент !!

+0

"pro.StartInfo = pro;" должен быть «pro.StartInfo = proStart;» да? – amalgamate

Смежные вопросы