windows使用.bat文件批量执行任务
问题
在win环境下, 考虑到这样的场景, 需要运行许多中间件和工具, 比如redis、elasticsearch、rabbitMQ等(当然, docker了解一下), 这就使得每次开始就要打开控制台分别开启各个服务, 十分麻烦, 我就寻思着是否可以用.bat批量一次性执行所有任务
解决
创建文本文档, 把后缀改为.bat文件类型
贴一下我的.bat文件
@echo off
::获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::cd到当前批处理文件所在目录
cd /d "%~dp0"
echo "启动redis"
start wt.exe D:\redis\Redis-x64-3.2.100\redis-server.exe D:\redis\Redis-x64-3.2.100\redis.windows.conf
echo "启动elasticsearch"
start wt.exe D:\elasticsearch\elasticsearch-6.2.2\bin\elasticsearch.bat
echo "启动kibana"
start wt.exe D:\elasticsearch\kibana-6.2.2-windows-x86_64\bin\kibana.bat
echo "启动MYSQL57服务"
start wt.exe net start MYSQL57
echo "启动MongoDB服务"
start wt.exe net start MongoDB
echo "启动rabbitMQ"
因为我的mysql服务需要管理员权限, 所以想启动mysql服务就必须获取管理员权限, 当然你也可以设置把mysql和mongoDB服务一直开着。
MYSQL57和MongoDB服务名是通过服务知道的
图1
根据你自己的情况改写.bat文件, 没问题之后双击运行.bat
图2 运行批处理文件
瞬间开启n个控制台执行任务
我使用的是windows terminal窗口来运行, 如果你没有安装windows terminal那你就out了, 当然你也可以把wt.exe去掉, 用自带的控制台执行
@echo off
::获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::保持当前目录下运行
cd /d "%~dp0"
echo "启动MYSQL57服务"
start net start MYSQL57
echo "启动redis"
start D:\redis\Redis-x64-3.2.100\redis-server.exe D:\redis\Redis-x64-3.2.100\redis.windows.conf
echo "启动elasticsearch"
start D:\elasticsearch\elasticsearch-6.2.2\bin\elasticsearch.bat
echo "启动kibana"
start D:\elasticsearch\kibana-6.2.2-windows-x86_64\bin\kibana.bat
echo "启动MongoDB服务"
start net start MongoDB
echo "启动rabbitMQ"
祝你编程愉快!