我有两个批处理文件,
第一个包含多个命令,每个命令带有两个参数,它调用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在第一行之后运行?
答案 0 :(得分:0)
您不能添加任何对您有帮助的可执行文件。它等待。最好的情况是您可以删除等待的行。
如果不能,则可以修改批处理文件,使其不等待可执行文件完成:
start C:\test.exe %1 %2
这使您的两个可执行文件并行运行。
或者您也可以通过管道将 Return 传送到您的exe:
echo.|C:\test.exe %1 %2
强悍,但应该可以。
答案 1 :(得分: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
中的任何参数,则可以使用%*
将它们全部不变地传递给它们