c# - 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();
}
有什么方法可以在当前窗口中启动所有这些吗?如何取消新的弹出窗口?
解决方案
这是如何做到的:
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();
}
}
}
推荐阅读
- r - 如何为 keras 编写 R 代码以尝试不同的节点、学习率、辍学等以找到最佳模型
- maven - 从多模块 Maven 项目的子模块导入类
- sql - 从常量格式字符串中提取日期的 SQL 查询
- html - 表格中的行对齐不正确
- json - 比较python中2个嵌套字典的值
- haskell - 关于“变量不在范围内”和“异常”的问题:
: 功能中的非详尽模式" - bintray - 下载时签名的 url 过期时下载会发生什么?
- c# - 如何从包含 ExcelFile 作为字符串的 http 响应转换回实例 ExcelFile(库 GemBox)?C#
- javascript - jquery中是否有一种方法可以通过多次单击重复输出和附加
- typo3 - TYPO3 indexed_search 重命名占位符