获取CPU/内存(window下(bat))

前言

作为一名程序员,跑程序已经是一件屡见不鲜的事情的,通常情况下,即使我们写完一段代码毫无错误,但是我们仍然要对其进行长时间的跑码测试,要关注其内存是否会泄露,cpu会不会太高,以及程序会不会崩等等这些基础问题。因此在跑程序的时候需要关注程序的外部的各个方面。这比较耗时费力,价值不高。因此我们要学会让程序自己去监测自己,我们只要几天之后去看TXT文件就行。废话不多说了,下面就介绍一下该如何去做。

1.CPU

On Error Resume Next
Set objProc  = GetObject("winmgmts:\\.\root\cimv2:win32_processor='cpu0'")
Wscript.Echo "cpu using " & objProc.LoadPercentage & "%"

   复制上面这段话,在记事本中打开,将记事本后缀名改成这样.vbs即可,点击一下如下图。

cpu.vbs

 2.内存

strComputer = "."
set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set colOS = objWMI.InstancesOf("Win32_OperatingSystem")
for each objOS in colOS
strReturn = "内存总数: " &  round(objOS.TotalVisibleMemorySize / 1024) & " MB" & vbCrLf &"内存可用数: " & round(objOS.FreePhysicalMemory / 1024) & " MB" & vbCrLf &"内存使用率 :" & Round(((objOS.TotalVisibleMemorySize-objOS.FreePhysicalMemory)/objOS.TotalVisibleMemorySize)*100) & "%"
Wscript.Echo strReturn
next

 同理,复制,加改后缀名。即可,点击之后如图,这里乱码是因为出现汉字,课把代码中汉字部分改成英文。如下下图

 

 

 最后就是再写一个文本文档,内容如下,最后将后缀名改为.bat即可。

set d=%date:~0,10%
set t=%time:~0,8%
set name=info.txt
echo ----------------zlq------------------------ >> %name%
echo %d% %t% >> %name%
cscript C:\Users\Administrator\Desktop\memery.vbs  >> %name%
cscript C:\Users\Administrator\Desktop\cpu.vbs  >> %name%

我是直接建立在桌面上面的,大家放在别的地方时候记得改地址上面set d,t那个是记录当前时间,name 是命名,你命名什么就会生出来一个相应的文件夹,太长的话会显示不出来,但是打开文件可以看到,最后你只要点击一下这个文件就会有对应文件生成。内容如下:

 当然这这些都完成之后,我们不可能隔几分钟就点击一次,太麻烦了,加下来加一个定时操作。

1.搜索任务计划程序,在任务计划程序库中右键,选择创建任务

 2.常规中名称随便写。然后点击触发器

 3.触发器点击新建,设置一下你需要运行的时间间隔,比如可以设置重复任务间隔,30分钟,持续时间一直。

 4.设置好触发器之后,点击操作,将刚才写的.bat文件添加,确定

 这个时候就把他挂后台即可。计算机会自己生成文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
你可以使用第三方库来获取Windows下的CPU温度,以下是一个示例的C++代码: ```cpp #include <iostream> #include <Windows.h> #include <pdh.h> #pragma comment(lib, "pdh.lib") float GetCpuTemperature() { HQUERY hQuery; PDH_STATUS pdhStatus; HCOUNTER hCounter; DWORD dwType; PPDH_FMT_COUNTERVALUE pValue; pdhStatus = PdhOpenQuery(NULL, NULL, &hQuery); if (pdhStatus != ERROR_SUCCESS) { std::cout << "PdhOpenQuery failed with status: " << pdhStatus << std::endl; return -1.0f; } pdhStatus = PdhAddCounter(hQuery, L"\\Processor(_Total)\\% Processor Time", NULL, &hCounter); if (pdhStatus != ERROR_SUCCESS) { std::cout << "PdhAddCounter failed with status: " << pdhStatus << std::endl; PdhCloseQuery(hQuery); return -1.0f; } pdhStatus = PdhCollectQueryData(hQuery); if (pdhStatus != ERROR_SUCCESS) { std::cout << "PdhCollectQueryData failed with status: " << pdhStatus << std::endl; PdhCloseQuery(hQuery); return -1.0f; } Sleep(1000); // 等待一秒钟 pdhStatus = PdhCollectQueryData(hQuery); if (pdhStatus != ERROR_SUCCESS) { std::cout << "PdhCollectQueryData failed with status: " << pdhStatus << std::endl; PdhCloseQuery(hQuery); return -1.0f; } pdhStatus = PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, &dwType, pValue); if (pdhStatus != ERROR_SUCCESS) { std::cout << "PdhGetFormattedCounterValue failed with status: " << pdhStatus << std::endl; PdhCloseQuery(hQuery); return -1.0f; } PdhCloseQuery(hQuery); // 假设CPU温度与CPU使用率成正比,可以将CPU使用率作为温度值返回 return static_cast<float>(pValue->doubleValue); } int main() { float temperature = GetCpuTemperature(); if (temperature != -1.0f) { std::cout << "CPU Temperature: " << temperature << " %" << std::endl; } return 0; } ``` 请注意,该代码使用了 Windows PDH (Performance Data Helper) API 来获取CPU使用率,并假设CPU温度与使用率成正比。这只是一个简单的示例,实际情况可能因硬件和操作系统的不同而有所区别。你可能需要根据具体的硬件和操作系统来选择适合的方法来获取CPU温度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzzlllqqqaaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值