Windows CLI에서 PID의 원시 바이트 수를 어떻게 얻나요?

Windows CLI에서 PID의 원시 바이트 수를 어떻게 얻나요?

많은 연구를 통해 저는 다음과 같은 결론을 얻었습니다.

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 스크립트에서 따옴표 등을 올바르게 이스케이프하고 있는지 확인하십시오.

관련 정보