我正在尝试编写一个简单的批处理文件,每 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
<
计算机>
抱歉,没有回答您的具体问题。希望我提供的内容对您有用。