我已经看到,可以使用wmic
来查找id
进程的 ,以搜索用于command line
启动该进程的 。
但我有两个问题。
- 我需要在批处理文件中使用它,所以我无法读取 wmic 的输出并调用 taskkill,我必须使用某种 grep
- 我找不到如何搜索部分匹配的方法。我更喜欢搜索命令行的一部分。
我能找到这个例子:
wmic process where "CommandLine=start.bat", pid
但我想做的更类似于:
wmic process where "CommandLine like %start.bat%", pid | taskkill
这就是我所说的命令行:“cmd.exe”/c C:\Mysql\start.bat”
有没有办法杀一个进程正在寻找启动它的命令行?
答案1
如何使用 wmic 终止通过命令行搜索的 cmd.exe 实例?
似乎您可以使用以下格式从 Windows 批处理本机执行此操作。只需WMIC
COMMANDLINE
在部分中插入批处理文件名(即使用选项找到的字符串),%start.bat%
就像我在下面所做的那样——我start.bat
在下面的示例中使用的与您在示例中使用的一样。
WMIC(杀死特定批处理文件进程示例)
WMIC PROCESS WHERE "COMMANDLINE LIKE '%start.bat%'" CALL TERMINATE
现在,让我们终止记事本。请注意,PID 现在不同了。我们执行以下命令,这是一种简单的句子式语句,我们在此确定条件和操作以及返回值,以便您可以检查管理工作的合理性和成功性。
process where processid="1000" call terminate