我有两个批处理文件,
第一个包含多个命令,每个命令都有两个参数,它调用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
不错,但应该行得通。