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中的注释。