gpt4 book ai didi

batch-file - 如何使用 wmic 查找进程 pid 并使用 taskkill 杀死它

转载 作者:行者123 更新时间:2023-12-05 00:24:53 24 4
gpt4 key购买 nike

我需要用 WMIC 命令找到一个进程 PID,然后用 taskkill 终止这个进程。我几乎实现了这一点,但唯一的问题是 PID 变量的末尾有一个换行符。
到目前为止,我做了这个:

c:\patryk>for /F "skip=1 tokens=*" %a in ('wmic process where "CommandLine like '%sourceprocessor%' and name like '%java%'" get ProcessId') do taskkill /pid | set /p pid=%a

所以这是遍历 wmic 的输出,其中包含 3 行:标题(ProcessId)、找到的 PID(一个数字)和一个空行。我跳过第一行,因为它只是标题。现在我想用在第二行中找到的 pid 杀死一个进程。还有一个问题,它在行尾有一个换行符,所以整个命令不起作用。
任何人都可以给我一些建议,我怎样才能做到这一点?我怎样才能删除这个换行符?

最佳答案

for /F "skip=2 tokens=2 delims=," %a in (
'wmic process where " .... " get ProcessID^,Status /format:csv'
) do taskkill /pid %a

现在您有来自 wmic 的输出开头有一个附加行(从这里跳过),字段用逗号分隔(delim),包括三个字段:自动添加的节点(计算机名)、进程 ID(第二个 token )和最终状态不会使用但允许我们在没有结束 CR 的情况下检索行中的第二个标记的字段

或者您可以添加一个额外的 for命令到您的初始行
for /f ... %a in ( ... ) do for %b in (%a) do taskkil /pid %b

此附加 for循环将从检索到的 %a 中的 wmic 数据中删除 CR 字符。

关于batch-file - 如何使用 wmic 查找进程 pid 并使用 taskkill 杀死它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com