Я унаследовал среду, в которой два разных процесса используют одинаковые имена, но их исполняемые файлы хранятся в разных файловых путях. Ни один, ни другой, ни оба могут работать в любое время.
Когда я выполняю определенные операции (например, исправление), я хочу, чтобы процесс, связанный с каталогом исправления, был завершен, но не другой.
Используя различные методы, я без проблем завершаю процессы на основе имени процесса, например (менее элегантно без использования powershell):
echo Checking for procname process...
tasklist /FI "IMAGENAME eq procname .exe" | !windir!\system32\find /I "procname.exe"
set EL=!ERRORLEVEL!
if !EL! EQU 0 (
echo Killing procname process...
TASKKILL /F /FI "IMAGENAME eq procname.exe"
)
или более элегантно (используя powershell)
powershell Clear-Host
powershell Stop-Process -name procname
Однако оба этих метода убивают оба процесса, если они запущены.
Вместо того, чтобы убивать эти процессы на основе их имени процесса, как я могу убить процесс, основываясь на пути к их исполняемому файлу?