中国开发网: 论坛: 程序员情感CBD: 贴子 789696
haitao
怎么在命令行下提取windwos操作系统地地内存,cpu 及进程数。。。。。
网站导航: 库库中文网 · windows系统汇集

怎么在命令行下提取windwos操作系统地地内存,cpu 及进程数,谢谢





『怎么在命令行下提取windwos操作系统地地内存,cpu 及进程数,谢谢』如果文章有大量图片,显示会较慢,请等待图片下载完成


点击数:1304 更新时间:2008-1-31 11:41:24



怎么在命令行下提取windwos操作系统的的内存,cpu 及进程数,谢谢
我现在负责几台服务器,每天都要检查机器原内存量及CPU使用率和进程数,请问是否有什么命令可以编写脚本直接提取这些数值呢,谢谢 20 回复次数:10

第1个回答


BatchFile code

--------------------------------------------------------------------------------@echo off

set sysinfo=%temp%\sysinfo.txt

set taskinfo=%temp%\taskinfo.txt

set cpunum=1



systeminfo>%temp%\sysinfo.txt



tasklist>%temp%\taskinfo.txt



:memory

for /f "tokens=1,2 delims=:" %%a in ('findstr /i "Total Physical Memory" "%sysinfo%"') do (

echo 物理内存总量:%%b&&echo.&&goto :cpu

)



:cpu

echo CPU使用率:

wmic cpu get level



:task

for /f "delims=:" %%a in ('findstr /n .* "%taskinfo%"') do set tasknumt=%%a

set /a tasknum=%tasknumt%-3

echo 进程数:%tasknum%



echo.

pause



--------------------------------------------------------------------------------

第2个回答
更新一下代码,对多核CPU或多CPU提供更人性化的显示。



BatchFile code

--------------------------------------------------------------------------------@echo off

set sysinfo=%temp%\sysinfo.txt

set taskinfo=%temp%\taskinfo.txt

set cpunum=1



systeminfo>%temp%\sysinfo.txt

tasklist>%temp%\taskinfo.txt



:memory

for /f "tokens=1,2 delims=:" %%a in ('findstr /i "Total Physical Memory" "%sysinfo%"') do (

echo 物理内存总量:%%b&&goto :cpu

)



:cpu

setlocal EnableDelayedExpansion

for /f %%a in ('wmic cpu get level ^| findstr "[0-9]"') do (

echo CPU!cpunum!使用率:%%a%%

set /a cpunum=!cpunum!+1

)

endlocal



:task

for /f "delims=:" %%a in ('findstr /n .* "%taskinfo%"') do set tasknumt=%%a

set /a tasknum=%tasknumt%-3

echo 进程数:%tasknum%



echo.

pause



--------------------------------------------------------------------------------

第3个回答
性能perfmon.msc可以把这件事做得更漂亮

开三个计数器:
Processor\% Processor Time
System\Processes
Memory\Committed Byte

支持远程,在一台机创建多台服务器的系统监视器,建议60秒取样,注意调节比例


--------------------------------------------------------------------------------

第4个回答
存为VBS执行,只要有权限访问到WMI接口,稍作修改也可以进行局域网查询


VBScript code

--------------------------------------------------------------------------------

On Error Resume Next

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")



Set colItems1 = objWMIService.ExecQuery("Select * from Win32_Processor",,48)

For Each objItem1 in colItems1



Set colItems2 = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_PerfOS_Memory",,48)

For Each objItem2 in colItems2



Set colItems3 = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_PerfOS_System",,48)

For Each objItem3 in colItems3



Wscript.Echo "处理器使用 : " & objItem1.LoadPercentage & "%" & vbCRLF & " 内存使用 : " & objItem2.CommittedBytes & " Byte" & vbCRLF & " 进程总数 : " & objItem3.Processes



Next

Next

Next





注:家里电脑是单核,不晓得LoadPercentage查询得到的是物理CPU的占用率还是逻辑CPU占用率
--------------------------------------------------------------------------------

第5个回答
对于脚本我不太懂,以上提供的脚本我试过,显示不出来,还有我的服务器是windows2000的,vbs脚本在XP上可以,但是在2000上运行没有显示经结果,而这个代码@echo off
set sysinfo=%temp%\sysinfo.txt
set taskinfo=%temp%\taskinfo.txt
set cpunum=1

systeminfo> %temp%\sysinfo.txt
tasklist> %temp%\taskinfo.txt

:memory
for /f "tokens=1,2 delims=:" %%a in ('findstr /i "Total Physical Memory" "%sysinfo%"') do (
echo 物理内存总量:%%b&&goto :cpu
)

:cpu
setlocal EnableDelayedExpansion
for /f %%a in ('wmic cpu get level ^ ¦ findstr "[0-9]"') do (
echo CPU!cpunum!使用率:%%a%%
set /a cpunum=!cpunum!+1
)
endlocal

:task
for /f "delims=:" %%a in ('findstr /n .* "%taskinfo%"') do set tasknumt=%%a
set /a tasknum=%tasknumt%-3
echo 进程数:%tasknum%

echo.
pause
提示“'systeminfo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'tasklist' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'wmic' 不是内部或外部命令,也不是可运行的程序
或批处理文件。”
谢谢


--------------------------------------------------------------------------------

第6个回答
如何支持远程,在一台机创建多台服务器的系统监视器?我试过但是边到我的那些服务器上,(我的机器与服务器不在同一个网段上)


--------------------------------------------------------------------------------

第7个回答
systeminfo 就可以看呀


--------------------------------------------------------------------------------

第8个回答
系统提示:'systeminfo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


--------------------------------------------------------------------------------

第9个回答
请直接告诉我使用方法,谢谢


--------------------------------------------------------------------------------

第10个回答
我在网上搜了一下,'systeminfo' 这个命令只能在XP和2003上使用


--------------------------------------------------------------------------------
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录