2017-08-16 6 views
-2

私はコメント行でdossコマンドを実行するために以下のコードを使用しています。メモ帳とコメント行を実行しました。Excelから実行しようとしましたが、メモ帳またはExcelを実行します。私はdosコマンドを実行したいと思います。 "/ Cエクセル" で二回あなたは "/ Cのメモ帳" を交換する引数のプロパティを設定することにより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

。プロセスはcmd.exeを起動し、 "/ C excel"だけを引数として渡します。

"/ C"引数として渡されたときにExcel.exeが見つからないと思われます。これは、何も実行されていないことをなぜ説明します。 Excelへの完全なパスを指定する必要があります。

メモ帳とExcelの両方を実行する場合は、最初に引数を1つ設定し、次にアプリケーションごとにStartを呼び出すことによって、メモ帳とExcelを順番に起動する必要があります。このような

何か:

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です。それは私を..ok助けたけど...

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ありがとう両方のプロセスを実行する:これは、OSがWindowsパス変数

を使用して、このような何かをするアプリケーションを見つけるのより良いチャンスを持ってできるようになります私が配置しようとしているとき startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;それは1つだけを実行します。 –

+0

文字列でdos出力を取る方法を教えてください。文字列str = "Dos commans"など –

関連する問題