を使用してSTART.EXEは、私は、このコマンドで<code>Process</code>を使用してMSIパッケージをインストールしたプロセス
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "msiexec";
p.StartInfo.Arguments = "/norestart /qn /l*v! mylog.log /i package.msi";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WorkingDirectory = workingDir;
p.Start();
string output = p.StandardOutput.ReadToEnd();
bool status = p.WaitForExit(timeout);
は、今私は、このコマンドを実行したいが、使用してstart.exe
:
start /wait msiexec.exe /norestart /qn /l*v! mylog.log /i package.msi
しかし、今、私は実行し、この:
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "start";
p.StartInfo.Arguments = "/wait msiexec.exe /norestart /qn /l*v! mylog.log /i package.msi";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WorkingDirectory = workingDir;
p.Start();
string output = p.StandardOutput.ReadToEnd();
bool status = p.WaitForExit(timeout);
しかし、それを実行しているとき、私はException
を得る:システムファイルがを指定見つけることができません。また、UseShellExecute
をtrue
に設定してみましたが、もう一度Exception
を取得しました。IOストリームをリダイレクトするには、ProcessオブジェクトのUseShellExecuteプロパティをfalseに設定する必要があります。
したがって、start
コマンドをC#を使用して実行できますか?
ファイルパスにすべてのパスを入れて、引数を削除して、ファイルパスが正しいことを確認しましたか? –
'start'はプログラムだとは思っていませんが、' cmd'によって提供されたものです。 –
Nop、別のコマンドプロンプトでコマンドを実行し始める – Andres