以下のコードを使用して、workSetSize をバイト単位で取得しています。
@echo off
setlocal enabledelayedexpansion
(For /F "delims=" %%A in ('"wmic process where Caption='Notepad.exe' get ProcessId,WorkingSetSize /format:Texttable |findstr "[0-9P]" "') do (
set "line=%%A"
echo !line:~0,-1!
))>out.txt
上記のコードでこのメモリを KB 単位で取得できますか?
EDIT1:
私はコードを次のように変更しました:
@echo off
setlocal enabledelayedexpansion
(For /F "delims=" %%A in ('"wmic process where Caption='Notepad.exe' get ProcessId,WorkingSetSize /format:Texttable |findstr "[0-9P]" "') do (
set "mem=%%B"
set /a mem=mem/1024
echo %%A !mem!
))>out.txt
出力を次のように取得します。
ProcessId WorkingSetSize 0
5816 9142272 0
5246 5673423 0
しかし、私はそれらの0を望んでいません。以下のようなものだけが必要です:
ProcessId WorkingSetSize
5816 9142272
5246 5673423
EDIT2
以下のコードを使用している場合:
@echo off
setlocal enabledelayedexpansion
(For /F "tokens=1,2" %%A in ('"wmic process where Caption='Notepad.exe' get ProcessId,WorkingSetSize /format:Texttable |findstr "[0-9P]" "') do (
set "mem=%%B"
set /a mem=mem/1024
echo %%A !mem!
))>new.txt
出力は次のようになります。
ProcessId 0
5216 6112
1152 6524