আমি একটি পরিবেশ উত্তরাধিকারসূত্রে পেয়েছি যা দুটি ভিন্ন প্রক্রিয়া অভিন্ন নাম ব্যবহার করে কিন্তু তাদের এক্সিকিউটেবল ফাইলগুলি বিভিন্ন ফাইল পাথগুলিতে সংরক্ষণ করা হয়। কেউ, এক, অন্য, বা উভয় যে কোন সময় চলমান হতে পারে।
যখন আমি কিছু অপারেশন (প্যাচিং মত) সঞ্চালন করি, আমি প্যাচিং ডিরেক্টরি সম্পর্কিত প্রক্রিয়াটি বাতিল করতে চাই তবে অন্যটি না।
বিভিন্ন কৌশল ব্যবহার করে, প্রক্রিয়া প্রক্রিয়াগুলির উপর ভিত্তি করে প্রক্রিয়াগুলি বন্ধ করার ক্ষেত্রে আমার কোন সমস্যা নেই (যেমন ক্ষমতাশালী ব্যবহার না করেই কম চমত্কারভাবে):
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"
)
বা আরো সুন্দরভাবে (powerhell ব্যবহার করে)
powershell Clear-Host
powershell Stop-Process -name procname
যাইহোক, এই পদ্ধতি দুটি উভয় প্রসেস হত্যা যদি তারা চলমান হয়।
এই প্রক্রিয়াগুলিকে তাদের প্রক্রিয়া নামের উপর ভিত্তি করে হত্যা করার পরিবর্তে, আমি কিভাবে তাদের এক্সিকিউটেবলের পথের উপর ভিত্তি করে একটি প্রক্রিয়া খতম করতে পারি?
WMIC PROCESS WHERE name="calc.exe" DELETE
এবংWMIC PROCESS LIST FULL