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

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

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

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

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

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

29799


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

29800


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

29801


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

29802


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

Для начало потребуется подключить пространство имён
C#:
using System.Diagnostics;
Код для выполнения:
C#:
ProcessStartInfo psi = new ProcessStartInfo();
//Имя запускаемого приложения
psi.FileName = "cmd";
//команда, которую надо выполнить
psi.Arguments = @"/k ping 127.0.0.1";
//  /c - после выполнения команды консоль закроется
//  /к - не закрывать консоль после выполнения команды
Process.Start(psi);
В результате Вы увидите всё то же самое, что и на последней картинке выше.
Класс ProcessStartInfo имеет перегруженный конструктор, в который сразу же можно передать имя запускаемого приложения и аргументы.
C#:
ProcessStartInfo psi;
psi = new ProcessStartInfo("cmd", @"/k ping 127.0.0.1");
Process.Start(psi);
Для запуска приложений может потребоваться указание полного пути к файлу запуска, например: запуск браузера opera.
C#:
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Program Files\Opera\opera.exe";
Process.Start(psi);
 

Сергей Попов

Кодебай
30.12.2015
4 718
6 705
BIT
418
МАКСИМ
19.10.2015 в 23:01
Спасибо! Отличный пример простого и действующего кода.

КОНДОР_007
20.10.2015 в 16:58
Премного благодарен. Направление подсказали, подробности уж докопаю)

ЯЙЦО
22.10.2015 в 15:43
Спасибо большое! Один из немногих сайтов, где все очень просто и понятно написано!

NASTYA
23.10.2015 в 09:12
подскажите пожалуйста, а если команда сложная и имеет в своей структуре двойные кавычки как быть тогда?
Пример:
Код:
psi.Arguments = @"/k pspsexec %1 -i 0
"c:Program FilesRadminr_server" /stop del
"%1c$Program FilesRadmin" /f /q";
ADMIN
23.10.2015 в 21:53
Перед каждой двойной кавычкой нужно поставить ещё одну двойную кавычку, например:
Код:
psi.Arguments = @"/k pspsexec %1 -i 0
""c:Program FilesRadminr_server"" /stop del
""%1c$Program FilesRadmin"" /f /q";
Если бы собаки (@) не было, то тогда простое экранирование использовалось бы

"c:Program FilesRadminr_server"

NASTYA
24.10.2015 в 20:45
Спасибо большое! Очень помогли!

GREEN IREEN
03.03.2017 в 07:33
Это именно то, что я искал.))
На мой взгляд (ленивого криворукого программиста) очень лаконичное и просто решение.
А, главное, все понятно.))
Огромное спасибо!
 

Dim116

New member
15.11.2019
1
0
BIT
0
Огромное спасибо. Побольше бы таких емких, кратких и элегантных советов во C#
 

pp11

Green Team
16.09.2018
201
82
BIT
1
А что это за картинки, которые совсем не в тему?
 
  • Нравится
Реакции: swiftik

Spectrum735

New member
12.12.2020
2
0
BIT
7
А что это за картинки, которые совсем не в тему?
Статья потому что совсем не новая.
Да и не понятно, зачем заупскать cmd, если можно запускать напрямую ping?

Я бы сделал так
C#:
Process proc = Process.Start(new ProcessStartInfo
    {
        FileName = "ping",
        Arguments = "127.0.0.1",
        UseShellExecute = false, //Отключаем любой инферфейс у процесса, чтобы небыло никаких окон
        CreateNoWindow = true, //отключаем также отображение на панеле задач
    });
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!