実行する .bat ファイルがあります。
そのファイル内.bat
の最後にそのコードがあります
START _file_creator.bat %some_arg_name%
ENDLOCAL
EXIT
実行中にウィンドウを表示したくありません。また、この.bat
ファイルによる操作が完了するまで待ってから実行を終了する必要があります (操作の最後に、「続行するには任意のキーを押してください」という標準テキストが表示されます)。 )。そのファイルによる出力とエラーも確認する必要があるため、そのコードを使用しようとしています。
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = @"C:\m_f\_config.bat";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
output1 = proc.StandardError.ReadToEnd();
proc.WaitForExit();
output2 = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
しかし、私が得るのはエラーだけです
Windows can not find file "_file_creator.bat".
Make sure you typed the name correctly and try again.
もちろん、その.bat
ファイルを実行すると正常に動作しますproc.StartInfo.UseShellExecute = true
が、その場合は設定できずRedirectStandardError = true
、RedirectStandardOutput = true
それを修正する方法?
編集
そのコードを使用すると、現在動作します
proc.StartInfo.FileName = @"C:\m_f\_config.bat";
proc.StartInfo.WorkingDirectory = @"C:\m_f\";