需要将多个标记分隔成多个参数,然后可以将这些参数设置为单独的变量

Need to separate multiple tokens into multiple parameters that can then be set to separate variables

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

我需要创建一个脚本来找到一个进程的 PID,其中会有多个 运行ning,然后为每个 PID 创建一个进程转储。如果 运行ning 多于一个,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 集并在命令中使用,但我不知道如何获取前两个。

这似乎一次性完成很多工作,但后来的目标是在 24 小时内每 2 小时和 5 小时 运行。我已经能够让它工作,所以现在我只需要解决 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

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