赞
踩
以一个情景的方式来描述bat的实战情况:
1. 启动命令时,一个cmd里启动好几个服务的情况下,前后启动互不影响,且独立窗口,不会影响到彼此的日志,同时,调用关闭命令会关闭各个服务对应的窗口:
1. 启动好几个,就按顺序启动脚本调用即可
2. 前后互不影响,则不要使用“&&"来连接就行,因为该符号的意思是指前边成功了才能执行后边的
3. 日志互不影响,则使用start /b 的方式来调用各个服务的启动命令
4. 各个窗口独立,则是要对每个独立服务的启动命令脚本,使用start /min的方式调用启动命令。
- @echo off
- echo start mongo...
- cd /d D:\mongo\MongoDB\Server\4.4\bin && start /b start.bat
- echo start jfqqq...
- cd /d D:\Program Files\Java\jdk-11.0.6\bin && start /b start.bat
- echo start caddy...
- cd /d D:\tools && .\caddy start
- echo start all server finished...
- cmd /k "cd /d D:\tools && .\caddy stop && cd /d D:\Program Files\Java\jdk-11.0.6\bin && stop.bat && cd /d D:\mongo\MongoDB\Server\4.4\bin && stop.bat"
- exit
解释:
1. /b 的意思就是,后台启动服务,关闭该窗口不会影响被它启动的服务
2. caddy没有使用/b,也就等于是,caddy的日志会被输出到该当前cmd窗口中
3. && 前边的执行成功了才会执行后边的命令
java服务的启动脚本:
start /min java -jar jfqqq.jar --server.port=8080 --spring.data.mongodb.uri=mongodb://127.0.0.1:27017/jfqqq
java服务的关闭脚本:
wmic process where "name like '%%java%%' and CommandLine like '%%jfqqq.jar%%'" delete
解释:
1. /min的意思就是启动独立的窗口
2. '%%%%'包裹住变量是因为:本来在cmd窗口中,写命令是一堆儿%即可,但是这里是放在bat脚本中,此时%会被认为是变量取值,所以再加一对儿%,来表明模糊匹配。
mongo服务的启动脚本:
- @echo off
- start /min mongod --dbpath=E:\MongoData\jfqqq\data > mongod.nohup
mongo关闭脚本
- wmic process where "name like '%%mongod%%' and commandLine like '%%jfqqq%%'" delete
- exit
解释:
1. /min的意思就是启动独立的窗口
2. exit,推出窗口
以一个情景的方式来描述bat的实战情况:
0. 自动启动全部的服务,每个服务独立的窗口。
1. 随后,该命令窗口在一定时间后自动关闭。
2. 然后自动打开浏览器,并打开多个服务地址。
3. 命令窗口中输出中文描述
0. 自动关闭全部的服务,并关闭对应的窗口
1. 随后,在一定时间后自动关闭。
启动mongo, nginx, java程序(jar)
代码:
- @echo off
- echo start mongo...
- cd /d E:\MongoData\4.4\bin && start /b start.bat
- echo start nginx...
- cd /d D:\nginx-1.22.1\nginx-1.22.1 && start /b nginx.exe
- echo start jfqqq...
- cd /d D:\Program Files\Java\jdk-11.0.6\bin && start /b start.bat
- echo start all server finished...
- chcp 65001
- echo 自动打开浏览器...
- cd /d C:\Program Files (x86)\Microsoft\Edge\Application\ && start /b msedge.exe http://localhost:8888/index.html localhost/a.html
- echo 已经开启所有服务!本窗口将在6秒后自动关闭,你也可以手动关闭本窗口。
- choice /t 5 /d y /n >nul
- exit
解释:
1. start /b 后台运行
2. start /min 开启新的窗口运行
3. chcp 65001 切换为utf-8的文字编码
4. 浏览器.exe url1 url2: 连着传递多个服务地址url,空格隔开,浏览器就会把两个都打开。
- @echo off
- echo stop jfqqq... && cd /d D:\Program Files\Java\jdk-11.0.6\bin && start /min stop.bat && echo stop jfqqq finished...
- echo stop mongo... && cd /d E:\MongoData\4.4\bin && start /min stop.bat && echo stop mongo finished!
- echo stop nginx... && cd /d D:\nginx-1.22.1\nginx-1.22.1 && start /min stop.bat
- echo stop all finished! you can close thie window now.
- chcp 65001
- echo 已经关闭所有服务!本窗口将在6秒后自动关闭,你也可以手动关闭本窗口。
- choice /t 5 /d y /n >nul
- exit
- @echo off
- start /min mongod --dbpath E:\MongoData\mongoDBData
- exit
- @echo off
- wmic process where "name like '%%mongod%%' and CommandLine like '%%mongoDBData%%'" delete
- exit
解释:
1. 这里用的两对百分号:%%mongod%%。直接在cmd窗口中写的话,一对儿就够,但是这里放到了命令行里,一对儿会被当作加载变量来处理,所以需要再加一层百分号。
- @echo off
- start nginx.exe
- @echo off
- @REM nginx -s stop
- wmic process where "name like '%%nginx%%'" delete
- exit
- @echo off
- start /min java -jar jfqqq.jar --logging.level.root=info --server.port=8080 --spring.data.mongodb.uri=mongodb://127.0.0.1:27017/jinfeng
- exit
- @echo off
- wmic process where "name like '%%java%%' and CommandLine like '%%jfqqq.jar%%'" delete
- exit
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。