私はトップ10のメモリ消費プロセスを手に入れようとしており、このコードではQuestionのコードを使用しています。異なるメモリサイズを消費するプロセスの複数のエントリを必要とせず、メモリ消費量が異なるためソートできませんでしたが、それはうまく動作します。 コードは次のとおりです。代わりに、既存のコードからの出力の同じプロセス名のエントリを削除する方法はありますか?
96931840:iexplore.exe
82161664:explorer.exe
42319872:svchost.exe
31469568:dwm.exe
25690112:SearchIndexer.exe
17002496:taskhostex.exe
11007590:VCExpress.exe
8033894:avp.exe
7190528 :Skype.exe
7000416 :SkypeBrowserHost.exe
:
@echo off
setlocal EnableDelayedExpansion
(for /F "skip=1 tokens=1,2" %%a in ('wmic process get name^,workingsetsize') do (
set "size= %%b"
echo !size:~-10!:%%a
)) > wmicc.txt
set i=0
for /F "skip=1 delims=" %%a in ('sort /R wmicc.txt') do (
echo %%a
set /A i+=1
if !i! equ 25 goto :end
)
:end
は私のように出力を得ることができます
96931840:iexplore.exe
82161664:explorer.exe
42319872:svchost.exe
33656832:svchost.exe
31469568:dwm.exe
26943488:iexplore.exe
25690112:SearchIndexer.exe
18550784:svchost.exe
17002496:taskhostex.exe
16343040:svchost.exe
はあなたが確信している、あなただけではなく、そのサイズを追加するよりも倍数を無視したいですか? – Stephan
@Stephanはい、確信しています。私はプロセス名にもっと興味があり、追加されたサイズはそれほど重要ではありません。 – San852
あなたの質問に投稿したデータには、番号と名前を分ける空白が表示されます。画像に投稿したデータにはコロンが表示されます。あなたのデータにコロンが表示されている場合は、tokens = 1 * "%% p"をfor/fに変更してくださいforkens = 1 * delims =: "%% p" – Magoo