有什么方法可以写一个 Windows.bat 文件来终止进程吗?

每次打开公司拥有的开发机器时,我都必须使用 Task Manager 或任何其他进程管理应用程序关闭10多个进程,才能从 IDE 中获得良好的性能。是的,这些是我的公司为了安全和合规而安装在我的机器上的程序的过程。我想做的是。Bat 文件或脚本,我可以用它来终止所讨论的进程。

有人知道怎么做吗?

394047 次浏览

下载 。编写一个批处理文件,该文件为您希望终止的每个进程调用它,并为每个进程传递进程的名称。

taskkill /f /im "devenv.exe"

这将强制关闭名为“ devenv.exe”的 pid

相当于 nix’y kill 命令的 -9

你可以用“ 任务杀手”做到这一点。 使用/IM 参数,您可以指定图像名称。

例如:

taskkill /im somecorporateprocess.exe

你也可以这样对“ 力量”杀:

例如:

taskkill /f /im somecorporateprocess.exe

只需为每个要终止的进程添加一行,将其保存为。Bat 文件,并添加到您的启动目录中。问题解决了!

如果这是一个遗留系统,PsKill也会这样做。

使用 Powershell! 内置的 cmdlet 来管理进程。 举个例子(硬件) ,给你(内置)和 给你(更多)。

我假设作为一个开发人员,您对您的机器有一定程度的管理控制。如果是这样,从命令行运行 msconfig.exe。您甚至可以从开始就删除许多进程,从而消除了使用上述解决方案杀死它们的需要。

从 Mark Russinovich 那里获取 自行车,这个 Sysinterals 的家伙发明了索尼 Rootkit... ... 这是我用过的最好的清理自动启动的东西的软件。

由于 TASKKILL 可能无法在某些家庭/基本版本的窗口在这里一些替代方案:

TSKILL processName

或者

TSKILL PID

请记住,processName不应该有 .exe后缀,并且限制为18个字符。

另一个选择是 WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess%.exe'" Call Terminate

Wmic 提供了比 taskkill 更大的灵活性,它具有类似 SQL 的匹配器。使用 wmic Path win32_process get,您可以看到可以过滤的可用文件(并且 %可以用作通配符)。

请找到下面的逻辑,它的工作条件。

如果我们简单地调用 taskkill /im applicationname.exe,那么只有当这个进程正在运行时它才会杀死。如果此进程未运行,它将抛出一个错误。

因此,为了在调用 takskill之前进行检查,可以进行检查,以确保只有当进程正在运行时才执行 taskkill,这样它就不会抛出错误。

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul


if errorlevel 1 taskkill /f /im "applicationname.exe"

在这里,我写了一个示例命令,您可以粘贴在您的 cmd命令行提示符,并为 chrome.exe编写。

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)

For 只接受下面 tasklist命令中列出的所有 PID,并在每个 PID上执行 TASKKILL /PID

tasklist /FO Table /M "chrome*" /NH

如果在批处理文件中使用 for,只需使用%% P 而不是% P