2011-02-10 38 views
1

我想要做一個自動化測試系統,它將允許我自動運行批處理文件。現在該過程是:幫助在Web窗體中運行命令行

  1. 運行的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(); 
} 

感謝和問候

回答

1

這應該是簡單的設置process1.StartInfo.Arguments = "antc";(假設你的include路徑排隊或文件是在您的網頁的工作目錄(和IIS has permission to run Process()

1

有什麼問題嗎?你也可以直接啓動批處理文件,不需要先啓動CMD.EXE。如果您需要讓用戶在關閉窗口之前按下某個鍵,請使用PAUSE命令結束您的批處理文件。

編輯:對不起,我沒有注意到「網頁表單」部分。所以現在我的問題是:你想要發生什麼?您將從Web表單在服務器上運行批處理。但是,你想顯示任何東西到網絡瀏覽器?你想要發生什麼?

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包含進程(批處理文件)的全控制檯輸出。

+0

我創建Web窗體有用戶輸入幾個領域。例如他可以輸入他自己的電子郵件地址和目標的電子郵件地址,會發生什麼情況是,一旦用戶進入這些字段,他點擊Button1這是「執行」按鈕,然後運行該批處理文件來定位另一個XML文件,這將生成電子郵件到目標以及在webform中輸入的其他合適的字段,因此,所有的輸出可以完全在服務器端,沒有要求客戶端查看任何東西,我會澄清你是否仍然有疑問 – jeremychan 2011-02-10 03:03:12

+0

@jeremy:Then是的,f或者關於`PAUSE`命令,並按照說明運行批處理文件。不需要執行CMD.EXE。 – 2011-02-10 03:05:02