如何在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

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

或者你可以用管道将Return发送到你的exe:

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

不错,但应该行得通。

相关内容

最新更新