Windows服务可并行运行多个批处理命令

时间:2018-08-24 16:39:11

标签: windows powershell batch-file parallel-processing windows-services

所以我已经知道如何像这样并行运行两个批处理命令

start /b cmd /c command1 
start /b cmd /c command2

现在,我想创建一个执行相同功能的Windows服务,但是我认为我不能仅创建一个直接运行这两个命令的服务,因为停止该服务不会杀死该服务的后台进程创建。

我要提供的服务需要并行运行command1command2(首先触发command1,然后在command2运行时触发command1)并且当服务停止时,两个(所有)关联进程也应停止。

我还希望避免编写一些Python / C#程序或其他东西,如果可能的话,直接从Windows / Batch / Powershell脚本直接执行。

2 个答案:

答案 0 :(得分:0)

您绝对可以从Window Service中执行所需的操作,而不必使用.NET中的start命令打开控制台窗口,而可以使用ProcessProcessStartInfo类,请参见此处:

Executing Batch File in C#

通过这种方式,您可以保留对您启动的Process对象的引用,而在服务停止时,您只需杀死两个进程即可。

答案 1 :(得分:0)

不能100%地确定为什么要提供服务以及需要做什么,但是从您的评论中,以下方法可能有意义。

在Windows中创建计划任务以启动,停止,在系统启动时运行,以及在SYSTEM(或任何其他)上下文中运行。您可以使用PowerShell自动创建计划任务。

使用PowerShell作业在PowerShell中进行并发处理。

相关问题