помощь в запуске командной строки в веб-форме - PullRequest
1 голос
/ 10 февраля 2011

Я хотел бы сделать автоматизированную систему тестирования, которая позволит мне автоматически запускать командный файл. сейчас процедура:

  1. run cmd.exe
  2. введите "antc"

Я хотел бы иметь кнопку, чтобы после того, как пользователь щелкнет по ней, вышеуказанные процессы запускались автоматически.

Я кое-что сделал, что позволяет мне открыть cmd.exe, как показано ниже:

protected void Button1_Click(object sender, EventArgs e)
{

    System.Diagnostics.Process process1 = new System.Diagnostics.Process();
    process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
    process1.StartInfo.FileName = Request.MapPath("CMD.EXE"); 
    process1.Start(); 
}

спасибо и всего наилучшего

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

это должно быть так же просто, как настройки process1.StartInfo.Arguments = "antc"; (при условии, что вы включили путь к файлу или файл находится в рабочем каталоге вашего Интернета (и что IIS имеет разрешение на запуск Process () )

1 голос
/ 10 февраля 2011

В чем вопрос? Также вы можете просто запустить пакетный файл напрямую, не нужно сначала запускать CMD.EXE. Если вам нужно заставить пользователя нажать клавишу перед закрытием окна, завершите ваш командный файл командой PAUSE.

РЕДАКТИРОВАТЬ: Извините, я не заметил часть "веб-формы". Итак, теперь мой вопрос: что вы хотите, чтобы произошло? Вы запустите пакет на сервере из веб-формы. Но хотите ли вы отобразить что-либо в веб-браузере? Что именно вы хотите, чтобы произошло?

EDIT2:

Вот мой код, который делает то, что вам нужно:

Process proc = new Process();

proc.StartInfo.FileName = "c:\\whatever\\executable.exe";
proc.StartInfo.Arguments = "-parameter -parameter -etc";
proc.StartInfo.UseShellExecute = false; // You may or may not need this

// For sure you need this
proc.StartInfo.RedirectStandardOutput = true;

// You may not need this
proc.StartInfo.RedirectStandardError = true;

proc.Start();

// For sure you need this
string procOutput = proc.StandardOutput.ReadToEnd();

// You may not need this
string procError = proc.StandardError.ReadToEnd();

На данный момент procOutput содержит полный вывод консоли процесса (командный файл).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...