如何在 C# 中 运行 下一个批处理文件命令
How to run next batch file command in 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 运行ning?
或者,如何在第一行之后保留 batch1 运行ning?
您不能向可执行文件添加任何对您有帮助的内容。它 等待 。最好的情况是您可以 删除 等待的行。
如果不能,您可以修改批处理文件,使其不等待可执行文件完成:
start C:\test.exe %1 %2
这使得您的两个可执行文件 运行 并行。
或者您可以将 Return 通过管道传输到您的 exe:
echo.|C:\test.exe %1 %2
哈克,但它应该工作。
似乎对批处理调用与 C# 调用有误解。
实际上,根据您的代码,您不调用 batch2,而只是运行它,
什么不给 batch1 留下 return 的选项。请参阅 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
中的任何参数,您可以将它们全部原样传递给 %*
我有两个批处理文件,
第一个,包含多个命令,每个命令有两个参数,它调用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 运行ning?
或者,如何在第一行之后保留 batch1 运行ning?
您不能向可执行文件添加任何对您有帮助的内容。它 等待 。最好的情况是您可以 删除 等待的行。
如果不能,您可以修改批处理文件,使其不等待可执行文件完成:
start C:\test.exe %1 %2
这使得您的两个可执行文件 运行 并行。
或者您可以将 Return 通过管道传输到您的 exe:
echo.|C:\test.exe %1 %2
哈克,但它应该工作。
似乎对批处理调用与 C# 调用有误解。
实际上,根据您的代码,您不调用 batch2,而只是运行它,
什么不给 batch1 留下 return 的选项。请参阅 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
中的任何参数,您可以将它们全部原样传递给 %*