首页 > 解决方案 > C# 在同一窗口中调用 cmd/bat 文件

问题描述

使用 C# 控制台,我们可以调用当前的 cmd/bat 文件。但它总是弹出新的命令行窗口。

我尝试过一一调用我的 cmd/bat 文件,但不知道如何在同一个窗口中运行它们。很简单如下:

static void Main(string[] args)
{
    Process.Start("first.cmd").WaitForExit(); // popup a new window

    Process.Start("second.cmd").WaitForExit(); // popup a new window

    Process.Start("third.bat").WaitForExit(); // popup a new window

    Console.WriteLine("Press any key to exit ... ");
    Console.ReadKey();
}

有什么方法可以在当前窗口中启动所有这些吗?如何取消新的弹出窗口?

标签: c#cmd

解决方案


这是如何做到的:

static void Main(string[] args)
{
    ExecuteProcesses(new string[] { "test1.bat", "test2.bat", "test3.bat" });
}

public static void ExecuteProcesses(string[] executablesPaths)
{
    using (Process process = new Process())
    {
        ProcessStartInfo processStartInfo = new ProcessStartInfo();
        processStartInfo.RedirectStandardOutput = true;
        processStartInfo.UseShellExecute = false;
        process.StartInfo = processStartInfo;
        foreach (string executablePath in executablesPaths)
        {
            process.StartInfo.FileName = executablePath;
            process.Start();
            Console.WriteLine(process.StandardOutput.ReadToEnd());
            process.WaitForExit();
        }
    }
}

推荐阅读