4

您如何运行一个批处理文件,它会杀死当前正在运行的所有其他 cmd.exe,除了正在执行 task kill 命令的那个?

4

3 回答 3

4

结合这两个线程:

  1. 如何从通过用户名和图像名过滤的命令行获取 PID
  2. 如何从 Windows 中的命令提示符获取自己的进程 pid

akillfile.cmd您可以在一个简单的 cmd 文件 ( )中写下这样的内容

title=dontkillme
FOR /F "tokens=2 delims= " %%A IN ('TASKLIST /FI ^"WINDOWTITLE eq dontkillme^" /NH') DO SET tid=%%A
echo %tid%
taskkill /F /IM cmd.exe /FI ^"PID ne %tid%^"
于 2012-08-19T05:39:44.977 回答
1

复制 cmd.exe,将其重命名为 a.exe,然后在批处理文件中使用此命令: start a.exe /k taskkill /f /im cmd.exe

于 2012-08-19T05:27:58.893 回答
0

这对我有用,添加到 .bat 的最开始,它会杀死所有先前启动的自身实例,然后立即使自己容易被同一个 .bat 文件的后续调用杀死:

title NewlyLaunchedThing
taskkill /F /IM cmd.exe /FI "WINDOWTITLE ne NewlyLaunchedThing"
title Thing

...do everything else

请注意,显然,“title”是一个关键字,它设置了一个名为“WINDOWTITLE”的变量。

此外,“=”(等号)显然对于分配标题/WINDOWTITLE 是可选的。意思是,这也有效,并且为了清楚起见可能是首选:

title = newTitle
于 2020-09-29T20:13:41.710 回答