代码之家  ›  专栏  ›  技术社区  ›  Abhijeet Patel

用于终止.NET控制台应用程序的TaskKill

  •  0
  • Abhijeet Patel  · 技术社区  · 14 年前

    我有一堆托管WCF服务的控制台主机应用程序。我调用一个.bat文件作为一个预构建步骤,以杀死任何正在运行的主机实例,这样我就不会得到WCF通道注册错误(每次在构建之前手动杀死控制台主机是一件非常痛苦的事情)。

    taskkill /T /F /FI "imagename eq Host.vshost.exe"
    taskkill /T /F /FI "imagename eq Host.exe"
    exit /B 0
    

    这会杀死这两个进程。我可以在taskmanager中看到Host.exe已不存在,并且Host.vshost.exe具有新的PID,但控制台窗口仍处于打开状态。 似乎cmd.exe是托管控制台的实际进程,因此我将.bat文件改为。。

    taskkill /T /F /FI "imagename eq cmd.exe"
    

    如何调整它,以便只针对特定控制台应用程序的cmd窗口,或者是否应该使用其他命令?

    1 回复  |  直到 14 年前
        1
  •  0
  •   ewall    14 年前

    结束进程 有几个选项可以帮助您缩小要终止的进程。例如,要终止的CMD.EXE进程的窗口标题是否唯一(例如,“批处理”而不是默认的“C:\WINDOWS\System32\CMD.EXE”)?然后使用

    taskkill /F /T /FI "WINDOWTITLE eq Batch Processing"
    

    TITLE Your Title Here start "Your Title Here" ... 命令。