首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从tasklist传递PID并使用tasklist终止进程

从tasklist传递PID并使用tasklist终止进程
EN

Stack Overflow用户
提问于 2012-03-15 08:31:41
回答 3查看 12.4K关注 0票数 5

我正在尝试让windows进程匹配一些特定的条件,例如,它们类似于"123456.exe“,并试图用tasklist杀死它们。我正试着这样做:

代码语言:javascript
复制
FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist |findstr /r "[0-9].exe") DO taskkill /PID %i

这是不对的,我不知道为什么.有人能给我个提示吗?提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-16 02:35:37

代码语言:javascript
复制
FOR /F "usebackq tokens=2" %i IN (`tasklist ^| findstr /r /b "[0-9][0-9]*[.]exe"`) DO taskkill /pid %i

有几个变化:

  • command_to_process需要在命令两侧使用反引号()。
  • 中的command_to_process管道("|")需要使用插入符号(“^”)进行转义。
  • 您的
  • 命令将匹配".exe“前面有数字的所有进程。例如,"myapp4.exe“也会被杀死。我提供的版本将匹配只包含数字的进程名称。
  • "skip=2“选项将跳过从findstr输出的前两行,而不是tasklist。由于正则表达式与任务列表输出的前两行中的任何内容都不匹配,因此可以安全地删除跳过选项。

顺便说一句,如果您将此命令放在批处理脚本中,请记住使用"%%i“而不是"%i”作为参数,否则会收到类似于i was unexpected at this time.的错误消息

  • FOR /F documentation
  • Findstr documentation
票数 14
EN

Stack Overflow用户

发布于 2017-03-12 21:58:54

如果进程名称差异不是很复杂,例如,如果名称始终相同,则可以直接使用taskkill的/FI选项

代码语言:javascript
复制
taskkill /FI "IMAGENAME eq your_image_name_here.exe"

==> taskkill documentation

票数 0
EN

Stack Overflow用户

发布于 2019-12-13 09:18:27

我在命令行中使用了这一点: name变量可以包含前后空格“

为/F "tokens=2,* delims=,“%f IN ('TASKLIST /fo csv /v ^| FINDSTR /i /c:! name !')设置”您要终止的进程名称“&&DO @TASKKILL /f /t /pid %f

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9712399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档