精易论坛
标题:
bat实现,当主进程结束时关闭副进程
[打印本页]
作者:
六度科技
时间:
4 天前
标题:
bat实现,当主进程结束时关闭副进程
子程序名
返回值类型
公开
备 注
进程关联
当主进程结束,副进程也会被结束
参数名
类 型
参考
可空
数组
备 注
主进程名
文本型
副进程名
文本型
多个用|隔开
变量名
类 型
静态
数组
备 注
副进程
文本型
副进程组
文本型
0
i
整数型
如果
(
寻找文本
(
副进程名,
“|”
, ,
假
)
≠ -1
)
副进程组 =
分割文本
(
副进程名,
“|”
,
)
计次循环首
(
取数组成员数
(
副进程组
)
, i
)
副进程 = 副进程 +
“ /im ”
+ 副进程组
[
i
]
计次循环尾
(
)
副进程 =
“ /im ”
+ 副进程名
运行
(
“cmd /c ”
+
#引号
+
“
@echo
off & for /l %a in (0,0,1) do (tasklist | findstr /i /c:”
+
#引号
+
#引号
+ 主进程名 +
#引号
+
#引号
+
“ >nul || (taskkill /f”
+ 副进程 +
“ >nul 2>&1 & exit) & ping 127.0.0.1 -n 1 >nul)”
+
#引号,
假, 1
)
' 脚本原文:
' @echo off
' :loop
' rem 检查a.exe进程是否存在
' tasklist /fi "imagename eq a.exe" | findstr /i "a.exe" > nul
' if errorlevel 1
(
' rem 如果不存在,关闭b.exe等进程并退出
' taskkill /f /im b.exe /im c.exe /im d.exe > nul 2>&1
' exit
'
)
' rem 每隔1秒检测一次(可通过修改-n后的数值调整间隔)
' ping 127.0.0.1 -n 1 > nul
' goto loop
.版本 2
.子程序 进程关联, , , 当主进程结束,副进程也会被结束
.参数 主进程名, 文本型
.参数 副进程名, 文本型, , 多个用|隔开
.局部变量 副进程, 文本型
.局部变量 副进程组, 文本型, , "0"
.局部变量 i, 整数型
.如果 (寻找文本 (副进程名, “|”, , 假) ≠ -1)
副进程组 = 分割文本 (副进程名, “|”, )
.计次循环首 (取数组成员数 (副进程组), i)
副进程 = 副进程 + “ /im ” + 副进程组
.计次循环尾 ()
.否则
副进程 = “ /im ” + 副进程名
.如果结束
运行 (“cmd /c ” + #引号 + “
@echo
off & for /l %a in (0,0,1) do (tasklist | findstr /i /c:” + #引号 + #引号 + 主进程名 + #引号 + #引号 + “ >nul || (taskkill /f” + 副进程 + “ >nul 2>&1 & exit) & ping 127.0.0.1 -n 1 >nul)” + #引号, 假, 1)
' 脚本原文:
' @echo off
' :loop
' rem 检查a.exe进程是否存在
' tasklist /fi "imagename eq a.exe" | findstr /i "a.exe" > nul
' if errorlevel 1 (
' rem 如果不存在,关闭b.exe等进程并退出
' taskkill /f /im b.exe /im c.exe /im d.exe > nul 2>&1
' exit
' )
' rem 每隔1秒检测一次(可通过修改-n后的数值调整间隔)
' ping 127.0.0.1 -n 1 > nul
' goto loop
适用于调用别人的程序,例如API接口服务,当你自己的进程结束或者意外结束后避免被调用的进程残留。
经测试占用内存大概1.5M,我也写过powershll版本,占用内存太大就放弃了
作者:
六度科技
时间:
4 天前
关联自身和单个多个进程
进程关联
(
取执行文件名
(
)
,
“b.exe”
)
进程关联
(
取执行文件名
(
)
,
“b.exe|c.exe”
)
进程关联 (取执行文件名 (), “b.exe”)
进程关联 (取执行文件名 (), “b.exe|c.exe”)
作者:
KD飞飞
时间:
4 天前
感谢分享,十分有用
作者:
imoling
时间:
4 天前
没太看懂,是只认进程名呢,还是有关联pid。那如果在程序中运行这个cmd,程序关闭,cmd是否会自动关闭。
作者:
jysoft2022
时间:
4 天前
谢谢分享
作者:
sostemp
时间:
4 天前
支持开源~!感谢分享
作者:
pipicool
时间:
4 天前
学习一下
作者:
kyo9766
时间:
4 天前
简单实用,感谢分享
作者:
lassgo
时间:
4 天前
大神,请收下我的膝盖,膜拜你,真的很厉害!
作者:
1184798949
时间:
4 天前
感谢分享
作者:
gdhong
时间:
4 天前
有价值的源码,谢谢分享!
作者:
yangjia255
时间:
4 天前
有价值的源码,谢谢分享!
作者:
艾玛克138
时间:
4 天前
又学到技术了,谢谢老大
作者:
豆豆灰常开心
时间:
3 天前
全都是大佬~
作者:
查过
时间:
3 天前
感谢分享,很给力!~
作者:
year1970
时间:
3 天前
感谢分享
作者:
qqmqqg
时间:
3 天前
66666666666666666666666
作者:
一指温柔
时间:
3 天前
感谢分享,很给力!~
作者:
lxn2wyf
时间:
3 天前
共同努力,共同进步,大家一起加油!
作者:
wh1234567
时间:
3 天前
感谢分享
作者:
胖子葛格
时间:
3 天前
感谢大神分享~!
作者:
wh1234567
时间:
前天 00:09
感谢分享
作者:
豆豆灰常开心
时间:
前天 07:09
感谢您对论坛的支持!
作者:
查过
时间:
前天 07:13
感谢您对论坛的支持!
作者:
一指温柔
时间:
前天 08:40
感谢分享
作者:
豆豆灰常开心
时间:
昨天 07:18
下个学习一下
作者:
查过
时间:
昨天 07:23
全都是大佬~
作者:
wuqingg
时间:
昨天 08:23
感谢分享~~~~
作者:
qq184252904
时间:
昨天 14:00
当主进程结束时关闭副进程
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4