0

免责声明:我绝对没有任何语言的编码经验。

我需要创建一个脚本,它可以找到一个进程的 PID,其中将有多个运行,然后为每个 PID 创建一个进程转储。Procdump 不允许在运行多个进程时使用进程名称,因此我的目标是找到进程的 PID,然后将其设置为变量以供以后的命令使用。

这是我制作的 .bat:

for /F "tokens=2" %%K in ('
   tasklist /FI "ImageName eq T.exe" /FI "Status eq Running" /FO LIST ^| findstr /B "PID:"
') do (
   set  "X= %%K"
)




c:\Users\Public\Documents\Procdump\procdump.exe -ma %X%


pause

我能够获得最后一个 PID 集并在命令中使用,但我不知道如何获得前两个。

这可能看起来一次性完成很多工作,但后来的目标是每 2 小时和 5 小时运行一次,持续 24 小时。我已经能够让它工作,所以现在我只需要解决 PID 问题。事后看来,也许 powershell 会是一个更好的选择,但我觉得我已经接近了,所以我想看看这条路线。

最多可以有三个进程。我在想它看起来像这样:

for /F "tokens=2" %%K in ('
   tasklist /FI "ImageName eq T.exe" /FI "Status eq Running" /FO LIST ^| findstr /B "PID:"
') do (
   set  "X= %%K"
   set  "Y=???"
   set  "Z=???"
)




c:\Users\Public\Documents\Procdump\procdump.exe -ma %X%
c:\Users\Public\Documents\Procdump\procdump.exe -ma %Y%
c:\Users\Public\Documents\Procdump\procdump.exe -ma %Z%


pause
4

1 回答 1

0

如果您需要对每个项目执行 procdump.exe nice,只需将其移动到 for /F 循环中,并使用 -ma %%K 作为参数

于 2021-06-17T12:16:40.877 回答