我正在尝试让 Windows 进程符合某些特定标准,例如它们就像“123456.exe”并试图用任务列表杀死它们。我正在尝试这样做:
FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist |findstr /r "[0-9].exe") DO taskkill /PID %i
这是不对的,我不知道为什么......任何人都可以给我提示吗?
提前致谢!
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 内部的管道(“|”)需要使用插入符号(“^”)进行转义。
- findstr 命令将匹配“.exe”之前有数字的所有进程。例如,“myapp4.exe”也会被杀死。我提供的版本将匹配仅包含数字的进程名称。
- “skip=2”选项将跳过 findstr 的前两行输出,而不是任务列表。由于正则表达式不会与任务列表输出的前两行中的任何内容匹配,因此您可以安全地删除跳过选项。
顺便说一句,如果您将此命令放在批处理脚本中,请记住使用“%%i”而不是“%i”作为参数,否则您将收到类似以下的错误消息i was unexpected at this time.
- FOR /F 文档 http://ss64.com/nt/for_cmd.html
- Findstr 文档 http://technet.microsoft.com/en-us/library/bb490907.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)