2017-08-16 81 views
-2

我正在使用下面的代碼與c#在註釋行中執行doss命令我執行記事本和註釋行中我嘗試執行excel但沒有運行如果我評論任何人記事本或excel然後執行。我想要一個一個地執行dos命令weather先前的命令完成它的過程。如何使用C#執行重複的dos命令

 System.Diagnostics.Process process = new System.Diagnostics.Process(); 
     System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
     startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
     startInfo.FileName = "cmd.exe"; 
     startInfo.Arguments = "/C notepad"; 
     startInfo.Arguments = "/C excel"; 
     process.StartInfo = startInfo; 
     process.Start(); 

回答

0

通過與 「/ C Excel的」 設置參數屬性兩次要更換 「/ C記事本」。該過程啓動cmd.exe並僅將「/ C excel」作爲參數傳遞給它。

我懷疑當它作爲「/ C」參數傳遞時,cmd.exe找不到Excel exe文件。這可以解釋爲什麼你看不到任何執行。您可能需要指定Excel的完整路徑。

如果您要執行記事本和Excel,您需要先啓動它們,先設置一個參數,然後爲每個應用程序調用Start

事情是這樣的:

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
process.StartInfo = startInfo; 
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = "/C notepad"; 
process.Start(); 
startInfo.Arguments = "/C {Insert the full path to Excel exe}excel"; 
process.Start(); 

或者,你可以啓動從進程啓動而不是作爲參數傳遞給cmd.exe的兩個應用程序。 Process本身就是cmd.exe。這將允許OS有發現使用Windows路徑變量的應用程序的一個更好的機會

事情是這樣的:

System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo(); 
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
process.StartInfo = startInfo; 

startInfo.FileName = "notepad"; 
process.Start(); 

startInfo.FileName = "excel"; 
process.Start(); 
+0

現在執行這兩個過程感謝名單利諾斯Pechos ......它幫助我..ok但當我試圖放置 startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;它只執行一個。 –

+0

你能告訴我如何在字符串中輸出dos輸出嗎?像字符串str =「Dos commans」等 –