网站导航: 库库中文网 · 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上使用
--------------------------------------------------------------------------------