如何在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#中运行下一个批处理文件命令的主要内容,如果未能解决你的问题,请参考以下文章
linux打开终端如何启动scala,如何在终端下运行Scala代码片段?
如何在不将批处理文件复制到 c 中的 7zip 文件夹的情况下运行 7zip 批处理