2012-03-15 9 views
0

C#で引数を指定してシェルコマンドを実行しようとしましたが、 "指定されたファイルが見つかりません"というファイルが見つかりました。引数でシェルコマンドを実行する方法は?

I`veは試してみました:パラメータ "同期"

+1

「のC#」を使用してタイトルを接頭辞ないでください。それがタグのためのものです。 –

答えて

5

あなたは少しあなたのコードを変更する必要があります。

p.StartupInfo.FileName = Path.Combine(Directory.GetCurrentDirectory(), "timesync\\NistClock.exe"); 
p.StartupInfo.Arguments = "sync"; 
3

使用Argumentsプロパティなしで実行されたときに

p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe sync"; 

パスが100%NistClock.exeが実行されますが正しいです。

p.StartInfo.FileName = Directory.GetCurrentDirectory()+ "\ TIMESYNC NistClock.exe \"。 p.StartInfo.Arguments = "sync";

ところで、Directory.GetCurrentDirectory()の使用には注意してください。このメソッドは、アプリケーション全体でファイルダイアログを使用している場合、何かを返すことができることに注意してください。 Assembly.GetExecutingAssembly()のような場所を使用して場所を探し、そこからディレクトリを解析する方がよい場合もあります。

3
string path = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";     
string args = "sync"; 
ProcessStartInfo p = new ProcessStartInfo(path, args); 
Process process = Process.Start(p); 
関連する問題