我想将任务管理器中的 CPU 列导入 CSV 文件,但 tasklist 命令没有提供 CPU。如何将任务管理器中的 CPU 导入 CSV 文件?

我想将任务管理器中的 CPU 列导入 CSV 文件,但 tasklist 命令没有提供 CPU。如何将任务管理器中的 CPU 导入 CSV 文件?

我想将 CPU 列从任务管理器复制到 CSV 文件中。但命令 tasklist 只提供进程名称、PID、内存、会话名称和会话编号,而不提供 CPU。请帮我使用命令将进程的 CPU 使用率从任务管理器复制到 CSV 文件。

答案1

您可以使用此 Powershell 命令:

Get-Process | Export-Csv -Path c:\path\to\yourfolder\yourfile.csv

获取进程文档:

进程的默认显示是包含以下列的表格。有关进程对象的所有属性的描述,请参阅 MSDN 库中的进程属性。

  • Handles:进程已打开的句柄数。
  • NPM(K):进程正在使用的非分页内存量,以千字节为单位。
  • PM(K):进程正在使用的可分页内存量,以千字节为单位。
  • WS(K):进程工作集的大小,以千字节为单位。工作集由进程最近引用的内存页面组成。
  • VM(M):进程使用的虚拟内存量(以兆字节为单位)。虚拟内存包括磁盘上页面文件中的存储。
  • CPU:该进程在所有处理器上使用的处理器时间(以秒为单位)。
  • ID:进程的进程 ID (PID)。
  • ProcessName:进程的名称。有关进程相关概念的解释,请参阅帮助和支持中心中的词汇表和任务管理器的帮助。

答案2

它可能有点慢,但是在 powershell 中相当准确:

tasklist /fo csv | set-content temp.csv 
Import-csv temp.csv | 
  Select-Object *,@{n='CPU %';e={$iu = $_.'Image Name'.split('.')[0]; (Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.InstanceName -eq "$iu"} | Select -Expand CookedValue}} | 
   Export-Csv "filename.csv"
Remove-Item temp.csv

中的 CPU 列Get-Process不准确,因此请使用Get-Counter。将“filename.csv”替换为输出文件。

相关内容