如何在C#中运行下一个批处理文件命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C#中运行下一个批处理文件命令相关的知识,希望对你有一定的参考价值。

我有两个批处理文件,

第一个,包含多个命令,每个命令有两个参数,并调用batch2,例如

C:\batch2 test1 "Hello this is a test"
C:\batch2 test2 "Hello this is a test as well"

第二个,包含.exe调用,并从batch1接收参数

C:\test.exe %1 %2

.exe完成这些工作,结束时如下:

Console.WriteLine("complete", dir, output);
output.Close();
Console.Read();

问题是,在运行batch1的第一行之后,第二行永远不会运行。我可以在.exe(C#程序)的末尾添加什么来保持batch1为每个后续行运行?

或者,如何在第一行之后保持batch1运行?

答案

似乎有一种误解,批量与C#的通话是什么。

实际上,从您的代码中,您不会调用batch2而只是运行它, 什么不留下返回batch1的选项。请参阅call /?或访问http://ss64.com/nt/call.html

:: Batch1.cmd
@Echo off
Call "C:\batch2.cmd" test1 "Hello this is a test"
Call "C:\batch2.cmd" test2 "Hello this is a test as well"

:: Batch2.cmd
@Echo off
C:\test.exe %*

如果你没有更改Batch2.cmd中的任何参数,你可以将它们全部传递给%*

另一答案

您无法向可帮助您的可执行文件添加任何内容。它等待。最好的情况是你可以删除等待的行。

如果不能,您可以修改批处理文件,以便不等待可执行文件完成:

start C:\test.exe %1 %2

这使得您的两个可执行文件并行运行。

或者你可以输回一个返回你的exe:

echo.|C:\test.exe %1 %2

哈基,但它应该工作。

以上是关于如何在C#中运行下一个批处理文件命令的主要内容,如果未能解决你的问题,请参考以下文章

在windows命令行中如何运行c程序的文本

如何运行文本文档编程命令

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

如何在不将批处理文件复制到 c 中的 7zip 文件夹的情况下运行 7zip 批处理

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

如何利用批处理命令让两个WINDOWS程序按照顺序运行?