bat、dos控制多个后台程序启动

目录:

一、背景

二、需求分析

三、实现方法

四、常见问题

==================================================================

正文:

一、背景

有一个windows项目,需要打开多个cmd.exe窗口来启动众多子服务。每次手工打开cmd.exe窗口,并执行相同的命令行,不仅效率低下,而且长时间没有启动忘了步骤,还容易出错。

二、需求分析

此时需要一个一键启动的方式来完成操作。

1、windows下,bat脚本可以执行编排好的命令。

2、一个bat脚本对应一个cmd.exe窗口,就考虑编写多个bat脚本,再由一个总bat脚本来调用。

3、ping命令可以用了拉开启动的时间间隔。

ping  -n   6   127.0.0.1  >nul 

三、实现方法

1、新建5个分散脚本:r0.bat、r1.bat、r2.bat、r3.bat、r4.bat

分散脚本中的内容可以改成你自己的命令。脚本数量也可以修改。

r0.bat中

mongod --port 65521 --dbpath d:/mongodb_data --auth

  

r1.bat中

ping -n 6 127.0.0.1 >nul
workon xunfeng_py2 && python -V && python web.py

  

r2.bat中

ping -n 7 127.0.0.1 >nul
workon xunfeng_py2 && python -V && python aider/aider.py

  

r3.bat中

ping -n 8 127.0.0.1 >nul
workon xunfeng_py2 && python -V && python nascan/nascan.py

  

r4.bat中

ping -n 9 127.0.0.1 >nul
workon xunfeng_py2 && python -V && python vulscan/vulscan.py

2、新建总控制bat:run.bat

run.bat中:

start r0.bat
start r1.bat
start r2.bat
start r3.bat
start r4.bat

::说明,以上bat是在做如下事项。各个脚本中ping的目的是在拉开启动时间间隔。
::start mongod --port 65521 --dbpath d:/mongodb_data --auth
::workon xunfeng_py2 && python -V && python web.py
::workon xunfeng_py2 && python -V && python aider/aider.py
::workon xunfeng_py2 && python -V && python nascan/nascan.py
::workon xunfeng_py2 && python -V && python vulscan/vulscan.py

 

3、测试

双击run.bat查看运行效果。

结果启动了5个cmd.exe窗口,服务运行成功。

 

四、常见问题

1、Unix文件和windows文件有区别

如果启动总bat不能执行所有命令,有可能是Unix格式的文件,用notepad打开,双击右下角Unix的标记,修改为windows格式的文件。

2、dos命令连续执行命令连接符

&&  表示前一个命令执行成功后执行后一个命令

workon xunfeng_py2 && python -V && python web.py

3、bat启动新cmd.exe

start  默认启动一个新的cmd.exe。

::     双冒号无空格,表示bat中的注释。

原文地址:https://www.cnblogs.com/andy9468/p/12603877.html