在 powershell 中获取 ProcessesByName 以监视单个 python 脚本 运行
Get-ProcessesByName in powershell to monitor individual python scripts running
我想在 powershell 中监控 python 脚本。为此,我使用 Get-ProcessByName
。我想监控单个 python 和 JAVA 脚本 运行 并根据单个脚本 运行 将其 processId 存储在 csv 文件中。 Get-ProcessByName
列出同一行中的所有 python 或 JAVA 进程。如何将不同行中的所有脚本名称分开。我目前正在做的是-
$process = [System.Diagnostics.Process]
$outputTime = $process::GetProcessesByName($processName.ProcessName)[0].TotalProcessorTime.TotalMilliseconds
$name = ($process::GetProcessesByName($processName.ProcessName)[0]) | Select-Object -ExpandProperty ProcessName
$extra = Get-WmiObject -Class Win32_Process -Filter "name = '$name.exe'" | Select-Object -ExpandProperty CommandLine
在 $extra
中,我正在获取所有 python 的名称 scripts.How 我是否将所有脚本分开
我会用这个
Get-Process | where ProcessName -Match python
据我了解Win32_Process
已经有了您需要的所有信息。如果需要,可以使用Select-Object
和Calculated Properties
进行修改。
Get-WmiObject -Class Win32_Process |
Where-Object {$_.Name -eq 'python.exe'} |
Select-Object -Property Name,
@{Name = 'Script'
Expression = {$_.CommandLine -replace
'(.*)\(?<py>.*\.py)|(.*)\ (?<py>.*\.py.*)',
'${py}'}
},
@{
Name = 'CpuTime'
Expression = {($_.KernalModeTime + $_.UserModeTime) / 10000000}
} |
Sort-Object -Property CpuTime -Descending
这会输出类似
的内容
Name Script CpuTime
---- ------ -------
python.exe completion.py preview 1,65625
python.exe Untitled-1.py 0,015625
当然,这也适用于 java.exe
或其他,甚至多个进程。如果您不想输出完整的 CommandLine
,请将第一个 Calculated Property
替换为 CommandLine
。
我想在 powershell 中监控 python 脚本。为此,我使用 Get-ProcessByName
。我想监控单个 python 和 JAVA 脚本 运行 并根据单个脚本 运行 将其 processId 存储在 csv 文件中。 Get-ProcessByName
列出同一行中的所有 python 或 JAVA 进程。如何将不同行中的所有脚本名称分开。我目前正在做的是-
$process = [System.Diagnostics.Process]
$outputTime = $process::GetProcessesByName($processName.ProcessName)[0].TotalProcessorTime.TotalMilliseconds
$name = ($process::GetProcessesByName($processName.ProcessName)[0]) | Select-Object -ExpandProperty ProcessName
$extra = Get-WmiObject -Class Win32_Process -Filter "name = '$name.exe'" | Select-Object -ExpandProperty CommandLine
在 $extra
中,我正在获取所有 python 的名称 scripts.How 我是否将所有脚本分开
我会用这个
Get-Process | where ProcessName -Match python
据我了解Win32_Process
已经有了您需要的所有信息。如果需要,可以使用Select-Object
和Calculated Properties
进行修改。
Get-WmiObject -Class Win32_Process |
Where-Object {$_.Name -eq 'python.exe'} |
Select-Object -Property Name,
@{Name = 'Script'
Expression = {$_.CommandLine -replace
'(.*)\(?<py>.*\.py)|(.*)\ (?<py>.*\.py.*)',
'${py}'}
},
@{
Name = 'CpuTime'
Expression = {($_.KernalModeTime + $_.UserModeTime) / 10000000}
} |
Sort-Object -Property CpuTime -Descending
这会输出类似
的内容 Name Script CpuTime
---- ------ -------
python.exe completion.py preview 1,65625
python.exe Untitled-1.py 0,015625
当然,这也适用于 java.exe
或其他,甚至多个进程。如果您不想输出完整的 CommandLine
,请将第一个 Calculated Property
替换为 CommandLine
。