- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个任务非常简单,但我似乎无法弄清楚(更令人沮丧的原因) - 我想查询 PsList 的特定进程并返回其常规输出的特定部分。例如,我想从下面的 PsList 输出中仅返回“耗时”字段
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
RDCMan 7384 8 22 1316 60432 0:00:54.101 5:02:31.886
这样伪代码和行为将如下所示:
pslist rdcman | select Elapsed Time
> 5:02:31.886
注意:“选择”实际上并不是以这种方式工作的。
以下code snippet围绕所需的输出跳舞,并且可能是有值(value)的,尽管我似乎无法根据我的需要来调整它。
我试图找到 pslist 的源代码(没有运气),看看逆向工程是否可以启发,并使用 pslist rdcman | 进行操作。获取成员(member)
。没有任何成员信息是显而易见的。
有什么建议吗?
最佳答案
如果出于某种原因您对 pslist 的输出感兴趣,您也可以这样做将其变成 PowerShell 对象
$output = .\pslist.exe 2> $null
$output | Select -Skip 3 | ForEach-Object{
$procInfo = $_ -split "\s+"
[pscustomobject][ordered]@{
Name = $procInfo[0..($procInfo.Count -8)] -Join " "
Pid = $procInfo[-7]
Pri = $procInfo[-6]
Thd = $procInfo[-5]
Hnd = $procInfo[-4]
Priv = $procInfo[-3]
"CPU Time" = $procInfo[-2]
"Elapsed Time" = $procInfo[-1]
}
} | Format-Table
.\pslist.exe 2> $null
是 suppress the error从 pslist 生成的输出。我们跳过输出中的前几行,因为每次都应该相同。
Process information for WYVERN:
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
然后我们将每一行分成几组空间以获得一个数组。下一部分应该不会那么复杂,但由于 EXE 名称可能包含空格,我们需要对此进行解释。最后 7 列不应包含空格,因此这些列是在创建的 [pscustomobject]
中显式分配的。在我们未分配的少数项目中,我们创建了一个空格分隔的字符串。 Format-Table
只是为了使其在屏幕上美观。如果您需要操作输出,请在 | 前面进行操作格式表
。
示例输出
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
---- --- --- --- --- ---- -------- ------------
Idle 0 0 4 0 0 1059:54:59.735 0:00:00.000
System 4 8 146 952 220 2:13:41.415 300:01:13.336
smss 312 11 3 32 580 0:00:00.062 300:01:13.320
csrss 512 13 10 858 3076 0:00:20.139 300:01:09.763
wininit 628 13 3 82 1688 0:00:00.062 300:01:07.985
csrss 644 13 12 1514 5540 0:19:56.168 300:01:07.969
services 696 9 7 274 7056 0:00:39.296 300:01:07.798
如果要获取rdcman的信息,您可以尝试以下操作。此代码代替上面代码的最后一行
} | Where-Object{$_.Name -eq "rdcman"} | Select -ExpandProperty "Elapsed Time"
或
} ?{$_.Name -eq "rdcman"} | Select -Expand "Elapsed Time"
关于powershell - 如何从 PsList 传输 'Elapsed Time'(或其他输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287700/
我喜欢 PSList,并使用 CPU 和 Elapsed 时间来识别需要杀死的进程。我想将它包装在一个返回管道值的 powershell 函数中,以便我可以执行以下操作: get-remoteproc
这个任务非常简单,但我似乎无法弄清楚(更令人沮丧的原因) - 我想查询 PsList 的特定进程并返回其常规输出的特定部分。例如,我想从下面的 PsList 输出中仅返回“耗时”字段 Name
我正在使用 WMI 执行各种操作系统管理和查询任务,但第一次 WMI 调用总是需要很长时间(10 到 15 秒)。 当我尝试了 sysinternals 的一些工具时,我发现它们的速度要快得多,我想知
我试图找到一个正在运行的进程并使用 PSLIST 和 PSKILL 终止它,但是,我无法正确设置错误级别。根据我执行此操作的方式,它会卡在 0 或 1。我最初让代码运行 Taskkill 和 Task
我是一名优秀的程序员,十分优秀!