批处理文件检查 CPU 并输出到 txt

批处理文件检查 CPU 并输出到 txt

我正在尝试编写一个简单的批处理文件,每 30 秒检查一次计算机的 CPU,并将当前时间输出到 txt 文件。我希望每一行都像这样:

Line1: %time% %cpu%
Line2: %time% %cpu%

这是我到目前为止想到的,但没有奏效:

:loop

echo %TIME% > C:\test.txt

wmic cpu get loadpercentage > C:\test.txt

timeout 30

goto loop

答案1

您的示例的一个大问题是重定向运算符“>” - 这将始终用输入的新数据覆盖 test.txt 中的数据。使用“>>”将输出附加到文件末尾,而不会删除文件中已有的信息。

您无需修复批处理脚本,只需执行此 PowerShell 单行命令即可以更少的努力获得相同的结果。

While($true){Get-WmiObject win32_processor | Select-Object @{L="Date";E={Get-Date}},LoadPercentage,SystemName | Export-Csv -NoTypeInformation -Append CPU.csv; Start-Sleep -Seconds 5}

您甚至可以使用以下方法定位远程计算机:

Get-WmiObject-ComputerName<计算机>

抱歉,没有回答您的具体问题。希望我提供的内容对您有用。

相关内容