带有子进程的特定进程的任务列表总内存windows

Tasklist total memory of specific proces with subprocesses windows

我正在尝试记录浏览器的内存使用情况,例如 Chrome / Firefox 等

对于 Firefox,我可以简单地使用这个小命令行:

tasklist /fo csv /fi "imagename eq firefox.exe" > DumpResults.csv

这将很好地实现一个过程及其用法。但是,当将这一思路应用于 Chrome 时,即使您干净地启动了 Chrome,您也会得到大约 4 个进程。有什么方法可以对结果求和吗?

抱歉这个愚蠢的问题,但这是我第一次尝试创建 bat 文件。

@echo off
set sum=0
for /f "tokens=5 delims=," %%x in ('tasklist /fo csv /nh /fi "imagename eq chrome.exe"') do (
  for /f "tokens=1-4 delims=.K " %%a in (%%x) do set /a sum+=%%a%%b%%c%%d
)
echo Sum Chrome = %sum%

也许您需要根据您的本地设置调整分隔符。我电脑上的输出是这样的:

C:\Users> tasklist /fo csv /nh /fi "imagename eq chrome.exe"
"chrome.exe","7744","Console","1","86.388 K"
"chrome.exe","7784","Console","1","1.312 K"
"chrome.exe","7920","Console","1","50.188 K"
...

另一种选择……

@Echo Off
Set "sum=0"
For /F "Tokens=6-7 Delims=., " %%a In (
    'TaskList /NH /FI "ImageName Eq chrome.exe"') Do Set/A sum+=%%a%%b
Set sum
Pause

…防止使用两个循环