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

问题描述 投票:0回答:2

我有两个批处理文件,

第一个,包含多个命令,每个命令有两个参数,并调用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# batch-file batch-processing
2个回答
0
投票

似乎有一种误解,批量与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中的任何参数,你可以将它们全部传递给%*


0
投票

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

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

start C:\test.exe %1 %2

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

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

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

哈基,但它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.