使用 Cygwin 从终端获取 CPU 温度?

使用 Cygwin 从终端获取 CPU 温度?

我在 Windows 8 上使用 Cygwin 64,想使用 bash 接口获取 CPU 温度(4 核以及 GPU 温度)。这可能吗?我正在使用温度监视器应用程序,并通过 Rainmaker 进行接口,但我想按照我选择的间隔将它们打印到文本文件中,因为我想对我的一些代码进行基准测试,看看它如何使计算机升温。

有任何想法吗?

答案1

Speed Fan 有日志记录选项。在配置中启用它。您将在安装 Speed Fan 的目录中找到日志文件。在我的情况下是Program Files\SpeedFan\SFLog(date).csv

我安装了Unix工具适用于 Windows。如果我理解正确的话,Cygwin它具有与 Windows 相同的功能,UnixTools并允许您在 Windows 中使用类 Unix 命令。

现在,我们有了日志文件(每 3 秒更新一次),其中包含我们想要的所有数据。我们可以使用它通过以下脚本从 SpeedFan 获取最新的值:

for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)

tail -n 1 "C:\Program Files\SpeedFan\SFLog%mydate%.csv" | gawk {print$2}

首先,我们将变量设置mydate为当前日期,格式与 Speed Fan 日志相同。我们需要它来查找最新的日志文件。

之后我们使用命令尾巴可以选择-n 1获取文件的最后一行(最新数据)。

我们将这一行提供给呆呆地带有选项的命令{print$2}可以获取行的第二个“列”,因为第一个“列”是时间戳。

因此脚本将回显日志文件第二列的最新值。如果您需要的不只是一个值 - 请创建另一个脚本,通过为 提供选项来请求第三{print$3}gawk

假设 SpeedFan 的日志文件具有以下格式:

Timestamp  CPU1_temp  CPU2_temp  MotherBoard_temp  CPUFan_RPM

您可以有 4 个脚本 - 每个脚本都会获取其中一个值(使用 的gawk选项{print$X}来确定它将读取哪一列)。

现在,当其他程序需要 SpeedFan 的温度读数时,您就可以从其他程序调用这些脚本。

相关内容