如何杀死当前正在运行的所有批处理文件

时间:2012-08-19 04:09:14

标签: windows batch-file

如何运行批处理文件,该文件对当前正在运行的所有其他cmd.exes执行任务,除了正在执行任务kill命令的那个?

3 个答案:

答案 0 :(得分:4)

组合这两个主题:

  1. how to get PID from command line filtered by username and imagename
  2. how to get own process pid from the command prompt in windows
  3. 你可以在一个简单的cmd文件(akillfile.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%^"
    

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

...do everything else

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

此外,“ =”(等号)对于分配标题/ WINDOWTITLE显然是可选的。意思是,这同样有效,为清晰起见,可能更可取:

title = newTitle