Как выполнить команду в cmd средствами языка c#

Как выполнить команду в cmd

В качестве примера рассмотрим выполнение команды ping.

Для того чтобы выполнить нашу команду потребуется запустить обработчик (интерпретатор) командных строк — cmd.

Обычно это делается так:

1. Нажать на кнопку «Пуск», если у Вас Windows Xp или на значок Windows, если у Вас семерка.

пуск

2. В поле, где сейчас написано «Найти программы и файлы» ввести cmd и нажать Enter

запуск cmd

3. Откроется окно обработчика, в котором нужно ввести команду (ping) и её аргументы (127.0.0.1) для выполнения и нажать Enter

ввод команды и аргументов

4. Результат после выполнения команды

результат

Всё это так же можно выполнить и программным путем.

Для начало потребуется подключить пространство имён

using System.Diagnostics;

Код для выполнения:

ProcessStartInfo psi = new ProcessStartInfo();
//Имя запускаемого приложения
psi.FileName = "cmd";
//команда, которую надо выполнить
psi.Arguments = @"/k ping 127.0.0.1";
//  /c - после выполнения команды консоль закроется
//   - не закрывать консоль после выполнения команды
Process.Start(psi);

В результате Вы увидите всё то же самое, что и на последней картинке выше.

Класс ProcessStartInfo имеет перегруженный конструктор, в который сразу же можно передать имя запускаемого приложения и аргументы.

ProcessStartInfo psi;
psi = new ProcessStartInfo("cmd", @"/k ping 127.0.0.1");
Process.Start(psi);

Для запуска приложений может потребоваться указание полного пути к файлу запуска, например: запуск браузера opera.

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Program Files\Opera\opera.exe";
Process.Start(psi);

Читайте также:

6 комментариев

  1. Максим says:

    Спасибо! Отличный пример простого и действующего кода.

  2. Кондор_007 says:

    Премного благодарен. Направление подсказали, подробности уж докопаю)

  3. Яйцо says:

    Спасибо большое! Один из немногих сайтов, где все очень просто и понятно написано!

  4. Nastya says:

    подскажите пожалуйста, а если команда сложная и имеет в своей структуре двойные кавычки как быть тогда?
    Пример:

    psi.Arguments = @"/k pspsexec \%1 -i 0
    "c:Program FilesRadminr_server" /stop del
    "\%1c$Program FilesRadmin" /f /q";
  5. Перед каждой двойной кавычкой нужно поставить ещё одну двойную кавычку, например:

    psi.Arguments = @"/k pspsexec \%1 -i 0
    ""c:Program FilesRadminr_server"" /stop del
    ""\%1c$Program FilesRadmin"" /f /q";

    Если бы собаки (@) не было, то тогда простое экранирование использовалось бы

    "c:Program FilesRadminr_server"

  6. Nastya says:

    Спасибо большое! Очень помогли!

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*