taskkill /f /fi “windowtitle eq 窗口标题“ /t 踩坑

最近在window11 上部署一个自动化脚本,目的:通过定时任务定时重启某个java任务

脚本 push-to-start.bat

@echo off

taskkill /f /fi "WINDOWTITLE eq xxx" /t

start cmd /k "cd/d D:\qt\projects && start-node.bat"

脚本start-node.bat

::标题命名
title xxx
::启动项目
java -Dfile.encoding=UTF-8 -Xms1G -Xmx1G -jar xxx.jar --spring.profiles.active=dev

编辑好以上两个脚本,当定时任务执行 push-to-start.bat 脚本即可实现xxx的java任务重启了。但是在实践的过程中发现 taskkill /f /fi “WINDOWTITLE eq xxx” /t 这行命令不生效。

经过排查发现只有通过管理员打开cmd窗口才能正常执行 taskkill /f /fi “WINDOWTITLE eq xxx” /t 这行命令。这时,我们在启动 push-to-start.bat 脚本是就需要创建快捷方式,右键快捷方式在高级设置上选择管理员执行。但是这样启动的脚本窗口名称不叫 xxx 而是 管理员: xxx 这时候我们就要调整一下push-to-start.bat。

调整后的 push-to-start.bat

@echo off

taskkill /f /fi "WINDOWTITLE eq 管理员:  xxx" /t

start cmd /k "cd/d D:\qt\projects && start-node.bat"

这里需要注意:bat脚本编码必须为ANSI编码,否则会中文乱码识别不了对应的cmd窗口。

总结:
(1) taskkill /f /fi “WINDOWTITLE eq 窗口标题” /t 这行命令需要用管理员操作才生效。
(2) 在编辑bat脚本是需要注意编码,正常情况下需要用ANSI编码,否则会中文乱码。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值