针对特定目录中存在的所有正在运行的进程执行 Taskkill

针对特定目录中存在的所有正在运行的进程执行 Taskkill

我基本上想组合以下命令集。换句话说,我需要检查 c:\apps 中是否存在任何可执行文件正在运行,如果有,则终止它们。完成这些命令后,我将执行 robocopy 来更新 c:\apps 中的文件。此脚本将使用 SCCM 进行部署。因此,我需要所有命令都返回错误级别 0,否则它将报告部署失败。

tasklist 2>NUL | find /I /N "processname.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im processname.exe

for /r c:\apps\ %%G in (*.exe) do taskkill /F /IM %%~nxG

答案1

我建议如下:

WMIC 进程其中“ExecutablePath 类似于‘C:\Apps\%%’”删除

那里有一个撇号,后面直接跟着引号,因此您可能只想复制并粘贴它。

所以这只是一行相当简单的代码(而不是一个批处理文件)。

这是一种相当强大且灵活的技术。因此,如果最终效果不如您所想,请尝试一下。您可能希望终止的程序具有一个独有的属性。有关详细信息的示例可参见: taskkill-结束以特定字符串结尾的窗口标题的任务:TOOGAM 的答案这呈现出一个相当相似的场景。

答案2

请参阅这批为您完成的工作。

@echo off

pushd c:\apps
FOR %%A IN (*.exe) do (
tasklist /FI "IMAGENAME eq %%A" 2>NUL | find /I /N "%%A">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im %%A
)

相关内容