Проведя множество исследований, я пришел к следующему выводу:
tasklist /fi "pid eq 13584" /fo CSV
Выход:
"Image Name","PID","Session Name","Session#","Mem Usage"
"php.exe","13584","Console","1","25 660 K"
Все еще ужасный беспорядок. Я пытаюсь получить вывод, такой как:
25660000
То есть, никаких CSV или других "форматирующих"/нежелательных данных. Никакого "отформатированного" объема памяти. Только сырые байты.
Как это делается?
решение1
cmd
не лучший способ сделать это в современной системе. Powershell гораздо более универсален и, как только вы привыкнете к синтаксису и симантике, гораздо более мощен.
Например, чтобы составить список всех процессов в системе:
PS C:\Users\user> Get-Process
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
325 20 10328 28056 0.28 17868 2 ApplicationFrameHost
208 15 7308 12952 22.95 12092 0 audiodg
476 33 26572 15592 106.06 8852 2 BorderlessGaming
155 11 1792 7600 4132 0 BtwRSupportService
53 4 672 2980 5096 0 cdarbsvc_v1.0.0_x64
142 7 1616 9092 0.05 17728 2 CompPkgSrv
... etc
Отсюда вы можете вывести конкретный PID:
PS C:\Users\user> Get-Process -PID 12092
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
208 12 7308 12952 31.48 12092 0 audiodg
PM = Частная память
WS = Рабочий набор
Чтобы получить только память:
PS C:\Users\user> (Get-Process -PID 12092).WorkingSet
13217792
PS C:\Users\user> (Get-Process -PID 12092).PrivateMemorySize
7413760
Если в вашей системе доступен PowerShell, вы можетеиспользуйте его для запуска команды и возврата еек cmd
:
cmd> powershell.exe -command "(Get-Process -PID 12092).PrivateMemorySize"
7598080
Есть некоторые предложения, которыеpowershell может некорректно выводить данныекогда запускается из определенных сред и нуждается в использовании, Write-Output
а также -InputFormat none
поэтому попробуйте
powershell.exe -InputFormat none -command "Write-Output((Get-Process -PID 12092).PrivateMemorySize)"
убедитесь, что вы правильно экранируете кавычки и т. д. в своем PHP-скрипте.