2013-11-26 5 views
6

ログインしている現在のユーザー、現在のシステムのCPU使用率、および使用可能なメモリを出力する簡単なスクリプトを作成していますか?バッチファイルで現在のCPU使用量と使用可能なメモリを取得するにはどうすればよいですか?

私は現在のユーザをログオンすることができましたが、CPU使用率とメモリも取得できますか?

これまでのコードです。

@echo off 

for /f "tokens=3 delims=\" %%i in ("%USERPROFILE%") do (set USER=%%i) 2>&1 
echo "Logged On User: %USER%" 
echo. 

pause 

CPU使用率を取得するには、このコマンドを試しましたが、動作していないようです。

まず
for /f "skip=1" %p in ('wmic cpu get loadpercentage') do 
echo %p% 
+0

:メモリの場合は、これらのカウンタをチェック!エラーが発生していますか? –

答えて

3

あなたはいつもsysteminfoコマンドを利用することができるが、その後短時間のロード画面を通じて

set totalMem= 
set availableMem= 
set usedMem= 
REM You need to make a loop 
for /f "tokens=4" %%a in ('systeminfo ^| findstr Physical') do if defined totalMem (set availableMem=%%a) else (set totalMem=%%a) 
set totalMem=%totalMem:,=% 
set availableMem=%availableMem:,=% 
set /a usedMem=totalMem-availableMem 
Echo Total Memory: %totalMem% 
Echo Used Memory: %usedMem% 

を行くことを余儀なくされるだろう、それはあなたが望む正確に何をすべき。このコードは、仮想メモリも表示するように簡単に変更できます。 (set totalMem=%totalMem:,=%set availableMem=%availableMem:,=%の使用は変数でコンマを取り除きます。)

モナ

+0

ありがとう、それは、使用されたメモリが少し正確であることを除いて、動作します。たとえば、使用されているメモリが1.8の場合は2を表示し、合計メモリは "x、xxx"のような表示であることに気付きました。使用されたメモリを計算するときにコンマが問題を起こさないでしょうか? – user2771150

+0

さようなら、これは簡単です。 – Monacraft

+0

申し訳ありませんが、私はバッチが初めてです。どのように修正しますか? – user2771150

6

、ループ変数が2パーセント記号を必要とするため、バッチファイルから実行している - %%p

第二に、あなたは%p%%%pをエコーする必要はありません。

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do echo %%p 

からコマンドライン:

for /f "skip=1" %p in ('wmic cpu get loadpercentage') do echo %p 
0
typeperf "\processor(_Total)\% Processor Time" -SC 1 -y 

または

C:\>logman create counter CPU_Usage3 -c "\Processor(_Total)\% Processor Time" -f csv -o %temp%\cpu.csv 
The command completed successfully. 

C:\>logman start CPU_Usage3 
The command completed successfully. 

C:\>logman stop CPU_Usage3 
The command completed successfully. 

C:\>type %temp%\cpu*.csv 
The system cannot find the file specified. 

Typeperfは、WindowsXPのホームでは使用できません、しかします。logmanは、管理者権限を必要とし、一時ファイルを作成します。 TYPEPERFLOGMAN。それが機能していないことを信じるようにあなたをリードして何 http://ss64.com/nt/syntax-performance-counters.html

0
@echo off 

setlocal enabledelayedexpansion 

set Times=0 

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do (

set Cpusage!Times!=%%p 

set /A Times=!Times! + 1 

) 

echo Percentage = %Cpusage0% 

pause 
+0

親切に説明内容を追加してください。 – Rajesh

関連する問題