How do i get a batch-file to work out the temperature of the Cpu and return it as a variable. I know it can be done as i have seen it been done. The solution can use any external tool. I have looked on Google for at least 2 hours but found nothing. Can any one help. Thanks.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Here is an example which keeps the decimal values and uses the full conversion value.
Code
@echo off
for /f "skip=1 tokens=2 delims==" %%A in ('wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature /value') do set /a "HunDegCel=(%%~A*10)-27315"
echo %HunDegCel:~0,-2%.%HunDegCel:~-2% Degrees Celsius
Output
38.05 Degrees Celsius
回答2:
You can use wmic.exe:
wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature
The output from wmic
looks like this:
CurrentTemperature
2815
The units for MSAcpi_ThermalZoneTemperature
are tenths of degrees Kelvin, so if you want celsius, you'd do something like this:
@echo off
for /f "delims== tokens=2" %%a in (
'wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature /value'
) do (
set /a degrees_celsius=%%a / 10 - 273
)
echo %degrees_celsius%
A few things:
1) The property may or may not be supported by your hardware.
2) The value may or may not update more than once per boot cycle.
3) You may need Administrative privileges to query the value.
回答3:
If you computer support it you can try like this :
wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature
This will output the temperature in degree Kelvin.