windows 根据端口杀进程 部署jar包 批处理脚本

@echo off & setlocal EnableDelayedExpansion

echo 启动脚本......
echo 关闭进程......
set obj[0]=8082
set port=0
set pid=0
for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (
    set port=%%b
    for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (
        set pid=%%m
    )
    if "!pid!"=="0" (
        echo 端口号【!port!】没有占用
    ) else (
        echo 端口号【!port!】相关进程已杀死
    )
    set pid=0
)

echo 备份原jar包......
set timestamp=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set bak_name=generator_%timestamp%
copy D:\ideaproject\generator-jar\generator.jar D:\ideaproject\generator-jar\bak\%bak_name%.jar

echo 删除原jar包......
del D:\ideaproject\generator-jar\generator.jar
echo 复制新jar包......
copy D:\ProgramData\Jenkins\.jenkins\workspace\generator-jar\target\generator.jar D:\ideaproject\generator-jar\generator.jar
rem echo 启动jar包......
rem call D:\ideaproject\generator-jar\startJar.bat

exit

脚本处理步骤

1.设置端口
set obj[0]=8766
set obj[1]=9999

2.循环要处理的端口obj
for /f “usebackq delims== tokens=1-2” %%a in (set obj) do ()

3.查找端口占用的进程pid
for /f “tokens=5” %%m in (‘netstat -aon ^| findstr “:%%b”’) do (
set pid=%%m
)

4.杀死进程pid
taskkill /f /pid !pid!

5.备份jar,复制新jar,调用启动脚本
rem call D:\timingtask\start_timingtask.bat

setlocal enabledelayedexpansion

  • 在批处理中,我们可以用setloacl ENABLEDELAYEDEXPANSION这个命令来启用"延迟环境变量扩展"
  • 在我们启用了"延迟环境变量扩展"后,当CMD在解释涵有嵌套格式的命令时,他会把嵌套的命令一条一条的先执行一次,然后再进行匹配操作
  • 在"延迟环境变量扩展"启用后,CMD会用!号来判断这是不是一个变量,如没启用来变量用%name%这样的格式判断,启用后就用!name!这样的格式判断

@echo off

  • @echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显
  • @的作用就是关闭紧跟其后的一条命令的回显
  • @echo off执行以后,后面所有的命令均不显示,包括本条命令

pause

  • pause也是一条命令,作用就是使程序暂停,也就是输出“请按任意键继续…”的原因。
  • 调试中使用

bat脚本输出乱码

使用editplus,另存以ANSI编码保存

startJar.bat脚本

@echo off
start javaw -jar D:\ideaproject\generator-jar\generator.jar
exit
  • java和javaw两个应用程序都能运行你的程序,并非常相似,但是有一个重要的区别,java通过控制台运行,javaw则不是。
  • javaw会使用与java不同的Local配置进行工作,导致了一些中文问题,而java就是好好的。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大佬腿好粗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值