windows bat批处理文件,实现某个软件的重启

windows环境

我这里用的是win10企业版,在基础功能上和家庭版区别不大

需要明确的概念

按照启动文件xxx.exe去定位某个程序的Pid

软件的icon名称和实际运行进程中的imagename可能是不一样的,我这里来举个例子,可以看到我的右下角这个软件叫Cisco AnyConnect
在这里插入图片描述

但是在任务管理器中,找不到这个名称的软件,又换成了另一个名称,前缀一样,后缀不一样。所以我这里统一找的办法就是,右键这个软件,点开它的properties
在这里插入图片描述
在这里插入图片描述

再点开details查看最下面的Original filename字段值,可以看到叫vpnui.exe
在这里插入图片描述

我们拿着这个名称到cmd中去执行命令

tasklist /fi "imagename eq vpnui.exe

可以看到能找到以下的进程pid
在这里插入图片描述

根据pid杀死某个进程

这里的18880就是对应刚刚查出来的PID

taskkill /pid 18880  -t  -f

根据exe文件启动某个软件

start命令后面的就是你的exe启动文件路径

start C:\Users\RAY\DiskD\WorkSoftwares\cisco connect\vpnui.exe

bat示例,杀死软件进程并重启

这里我用px这个软件做为演示,px这个软件启动后会有3个进程,所以我这里用了数组保存这三个进程的pid,而当我kill掉其中一个pid的时候,其余进程也会随之被kill掉,所以我这里只需要kill掉obj[0]进程就可以了,大家可以适当根据自己的需求做调整

restartpx.bat

@echo off
setlocal enabledelayedexpansion
set /a objIndex=0
set obj[0]=0
set obj[1]=0
set obj[2]=0

for /f "skip=3 tokens=2 delims= " %%a in ('tasklist /fi "imagename eq px.exe"') do (
	echo echo ------!objIndex!------
	set obj[!objIndex!]=%%a
	set /a objIndex+=1
)


if (%obj[0]%)==(0) (
	echo px progress isn't running.
	start C:\Users\RAY\DiskD\WorkSoftwares\px-v0.8.3-windows\px.exe
)else (
	echo px is running.
	echo kill px progress......;
	taskkill /pid %obj[0]%  -t  -f

	timeout /t 1
	echo px has been killed.
	echo start px ......
	timeout /t 2
	start C:\Users\RAY\DiskD\WorkSoftwares\px-v0.8.3-windows\px.exe
)

echo px has been restarted.

timeout /t 3
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RayCheungQT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值