batch批处理获取同名进程各自内存占用

@echo off
rem 初始化数据
set process_name=%1
set CtpMsg[1].subid=1
set CtpMsg[1].flag=0
set CtpMsg[1].Size=0
set CtpMsg[2].subid=2
set CtpMsg[2].flag=0
set CtpMsg[2].Size=0
set Flag=0
set Size=0
set CtpNum=2

rem 存储标记位
:begin
setlocal  enabledelayedexpansion
FOR /F "tokens=1,2,3 delims= " %%a in ('wmic process where name^="%process_name%" get CommandLine^,WorkingSetSize  ^| findstr %process_name%') do (
	rem echo %%b  %%c
	set /a Flag=%%b & set /a Size=%%c
	set /a CtpMsg[!Flag!].flag=!Flag!
	set /a CtpMsg[!Flag!].Size=!Size!/1024/1024
) 

rem 报告对应标记相应信息
set Flag=0

for /L %%a in (1,1,%CtpNum%) do (
	if !CtpMsg[%%a].flag!==%Flag%  (
		rem echo !CtpMsg[%%a].subid! stopped
	) else (
		echo !CtpMsg[%%a].subid! running
		echo !CtpMsg[%%a].subid! !CtpMsg[%%a].Size!
	)
)

rem 复位数据
for /L %%a in (1,1,%CtpNum%) do (
	set CtpMsg[%%a].flag=0
)

choice /t 1 /d y /n >nul
goto begin


注:这里使用flag作为伪数组的下标和标记位。如启动两个test.exe进程,启动的时候 分别加参数如 test.exe 1 test.exe 2 。批处理将能够区分,并获得两个同名对应进程内存的Size。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值