1

我正在使用 ProcessStartInfo 类来执行批处理文件。但我不太清楚如何正确使用它。当我执行批处理文件时,我们可以跟踪是否有任何错误。在我的场景中,批处理将启动另一个进程并成功启动它将继续执行。如果执行批处理文件有任何错误,它将退出。这是我正在使用的代码。

我还必须跟踪成功启动和失败。

internal bool ExecuteBatchFile(string fileName, int executionTime)
    {
        var exitCode = -1;
        var error = string.Empty;
        try
        {

            var hubStartInfo = new ProcessStartInfo
            {
                CreateNoWindow = false,
                FileName = fileName,
                UseShellExecute = false
            };

            var process = new Process { StartInfo = hubStartInfo };
            process.Start();
            process.WaitForExit(executionTime);

            if (process.HasExited)
            {
                exitCode = process.ExitCode;
                if (exitCode == 0)
                {
                    return true;
                }
                error = process.StandardError.ReadToEnd();
            }
            else
            {
                return true;
            }

            return false;
        }
        catch (Exception e)
        {
            return false;
        }
    }

谢谢

4

1 回答 1

2

有关启动进程的信息,请参见此处。示例 2 包含有关监视外部进程的信息

private void simpleRun_Click(object sender, System.EventArgs e)
{
  System.Diagnostics.Process.Start(@"C:\listfiles.bat");
}
于 2012-07-12T15:11:30.347 回答