从命令行关闭正在运行的程序

本文关键字:运行 程序 命令行 | 更新日期: 2023-09-27 18:23:57

Visual Studio 2010C#

是否可以从命令行运行和关闭程序?我需要做这样的事情:

myProgram.exe -start
-- do something --
myProgram.exe -stop

我知道如何实现第一部分(主要中的 String[] 参数(,但我如何关闭正在运行的程序?


编辑

myProgram.exe正在处理一些UDP通信,并且必须在执行内容(执行某些操作(时执行。很抱歉哔哔不精确。

从命令行关闭正在运行的程序

我猜您知道如何检查命令行参数并查找是否已指定停止? 下面应该可以完成这项工作。

        var currentProcess = System.Diagnostics.Process.GetCurrentProcess();
        var matchingProcesses = System.Diagnostics.Process.GetProcesses().Where(x => x.Id != currentProcess.Id && x.ProcessName == currentProcess.ProcessName);
        foreach (var process in matchingProcesses) {
            process.Kill();
        }

是否可以将taskkill用于这样的事情。

即如果你想关闭我的程序.exe,你可以执行

taskkill /IM myProgram.exe

使用旨在关闭进程的命令行程序 - pskill就是这样一个程序。

pskill myProgram.exe

内置实用程序是任务杀戮:

taskkill /im myProgram.exe
  • 按名称获取进程 ID
  • 终止进程

正如 Fox32 在他的评论中已经提到的那样,您应该真正采用这种方法,因为在这种情况下,您的应用程序可以真正优雅地自行关闭。如果你只是简单地使用taskkill等来从外部世界杀死你的进程,你真的可能会遇到麻烦,这取决于你正在使用的资源(网络,数据库,文件等(。