
@echo off
setlocal enabledelayedexpansion
set p=TTPlayer
set max=9000
for /f "tokens=3,6" %%i in ('tasklist^|findstr /i %p%') do (
set s=%%j
set /a s=!s:,=!
rem echo %%i !s!
if !s! gtr %max% taskkill -f /pid %%i)
pause
mode con cols=20 lines=10
@ECHO OFF
TITLE 检测程序
COLOR A
set "file1=启动1exe"
set "file2=启动2exe"
set "file3=启动3exe"
:begin
ping -n 60 1271 >nul
for %%i in (%file1% %file2% %file3%) do (
tasklist|find /i "%%~i"||start "" "%%~i"
)
goto begin
rem 把此vbs放到“开始”菜单——程序——启动,以达到开机启动的目的
'要检查的进程名
strTargetExe = "anotepadexe"
'10秒检查一次
intDelay = 10
strComputer = ""
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
strTargetExe = LCase(strTargetExe)
Do
WSHSleep 1000 intDelay
Set colProcessList = objWMIServiceExecQuery("Select from Win32_Process")
For Each objProcess in colProcessList
If LCase(objProcessName) = strTargetExe Then
Set objWMIService = GetObject _
("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & _
strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIServiceExecQuery _
("Select from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystemWin32Shutdown(1)
Next
Exit Do
End If
Next
Loop Until False
bat是解释脚本,所以运行时并不是bat本身在运行,而是它的解释器cmdexe在运行。您这个思路应该不行。
有一个折衷的办法,就是bbat在运行开始写一句@echo A>runlogtxt,在结尾在写一句@echo Z>runlogtxt。
您检测的批处理可以循环读取runlogtxt的内容,直接写
@if exist runlogtxt (
@set /p runcheck=<runlogtxt
@if %runcheck%==A (
@echo bbat在运行
) else (
@echo bbat未运行
)
) else (
@echo bbat位运行
)
如果分别用一个bat打开一个exe可以很简单实现,用start /wait "title" "程序路径"就行了,它会等到程序被关掉后才继续执下面的语句,在下面加个goto返回就行了,后台可以通过用vbs来运行bat实现,也可以找一些把bat转成exe的软件,有些可以实现后台运行。
以上就是关于批处理某个进程的内存使用率达到预设值,进行某项 *** 作全部的内容,包括:批处理某个进程的内存使用率达到预设值,进行某项 *** 作、bat代码请指教、bat批处理怎么反复检测一个进程是否存在 检测如果该进程存在则继续检测 直到进程关闭则执行关机命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)