Выполнить команду CMD из кода - PullRequest
29 голосов
/ 10 августа 2009

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

Ответы [ 9 ]

37 голосов
/ 10 августа 2009

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

Process.Start("cmd","/C copy c:\\file.txt lpt1");
22 голосов
/ 16 декабря 2009

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

  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 также позволяет вам извлекать информацию о процессе во время его выполнения и уведомляет вас (через событие Exited) о завершении процесса.

Добавление: не забудьте установить 'process.EnableRaisingEvents' в 'true', если вы хотите перехватить событие 'Exited'.

10 голосов
/ 01 мая 2013

, если вы хотите запустить приложение с помощью 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);
10 голосов
/ 10 августа 2009

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

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process.Start("example.txt");
    }
}
5 голосов
/ 10 августа 2009

Как насчет создания командного файла с помощью нужной команды и вызова его с помощью Process.Start

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

dir

затем позвоните:

Process.Start("dir.bat");

вызовет файл bat и выполнит команду

3 голосов
/ 21 июля 2017

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

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

2 голосов
/ 10 августа 2009

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

Process.Start("notepad C:\test.txt");
1 голос
/ 10 августа 2009

Вы спрашиваете, как вызвать командные окна? Если это так, вы можете использовать Объект процесса ...

Process.Start("cmd");
0 голосов
/ 03 апреля 2018

В дополнение к ответам выше, вы можете использовать небольшой метод расширения:

public static class Extensions
{
   public static void Run(this string fileName, 
                          string workingDir=null, params string[] arguments)
    {
        using (var p = new Process())
        {
            var args = p.StartInfo;
            args.FileName = fileName;
            if (workingDir!=null) args.WorkingDirectory = workingDir;
            if (arguments != null && arguments.Any())
                args.Arguments = string.Join(" ", arguments).Trim();
            else if (fileName.ToLowerInvariant() == "explorer")
                args.Arguments = args.WorkingDirectory;
            p.Start();
        }
    }
}

и используйте его так:

// open explorer window with given path
"Explorer".Run(path);   

// open a shell (remanins open)
"cmd".Run(path, "/K");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...