प्रक्रियाओं को मारने के लिए एक .bat फ़ाइल लिखने का कोई तरीका? [बन्द है]


114

जब भी मैं अपनी कंपनी के स्वामित्व वाली विकास मशीन को चालू करता हूं, मुझे अपने आईडीई से अच्छा प्रदर्शन प्राप्त करने के लिए टास्क मैनेजर या किसी अन्य प्रक्रिया प्रबंधन ऐप का उपयोग करके 10+ प्रक्रियाओं को मारना पड़ता है। हां, ये उन प्रोग्रामों से प्रक्रियाएं हैं जो मेरी कंपनी सुरक्षा और अनुपालन के लिए मेरी मशीन पर स्थापित करती है। मैं जो करना चाहूंगा उसके पास एक .bat फ़ाइल या किसी प्रकार की स्क्रिप्ट है जिसके साथ मैं प्रश्न में प्रक्रियाओं को मार सकता हूं।

क्या किसी को भी पता है की यह कैसे किया जाता है?


यह तब भी आसान होना चाहिए जब एक स्वचालन वातावरण और एक दूर के उपप्रकार को समाप्त करने की आवश्यकता होती है यदि यह समय की एक सभ्य राशि में समाप्त या प्रतिक्रिया करने में विफल रहता है।
डैनी स्टेपल

मैंने इस प्रश्न लिंक को अपने सभी प्रत्यक्ष सहयोगियों के साथ पोस्ट किया क्योंकि हम राउंडअबाउट 2000 इंजीनियरों (सीएडी कर रहे) के साथ एक कंपनी में 20 एस / डब्ल्यू डेवलपर्स के राउंडअबाउट हैं। हम स्थायी रूप से आईटी प्रशासन विभाग के साथ संघर्ष कर रहे हैं क्योंकि (सुरक्षा नीति के कारण) हम लगभग अपना काम करने में असमर्थ हैं ... (यह तकनीकी रूप से मदद नहीं करता है लेकिन यह सुनकर अच्छा लगता है कि अन्य एस / डब्ल्यू डेवलपर्स को इसी तरह की समस्या है ।)
Scheff

जवाबों:


171

आप इसे ' टास्ककिल ' के साथ कर सकते हैं । / IM पैरामीटर के साथ, आप छवि नाम निर्दिष्ट कर सकते हैं।

उदाहरण:

taskkill /im somecorporateprocess.exe

आप इसे ' बल ' मारने के लिए भी कर सकते हैं :

उदाहरण:

taskkill /f /im somecorporateprocess.exe

बस प्रति पंक्ति एक प्रक्रिया जोड़ें जिसे आप मारना चाहते हैं, इसे एक .bat फ़ाइल के रूप में सहेजें, और अपनी स्टार्टअप निर्देशिका में जोड़ें। समस्या सुलझ गयी!

यदि यह एक विरासत प्रणाली है, तो PsKill वही करेगा।


34
LOL - "somecorporateprocess.exe" देव टीमों से कॉरपोरेट आईटी के डिस्कनेक्ट को बहुत अधिक बढ़ाती है।
Maplemale

8
मुझे उनके नाम taskkill /F /IM <processname.exe> /Tसे सभी प्रक्रियाओं को बंद करने के लिए उपयोग करने में सफलता मिली ।
बेंज

मार पृष्ठभूमि प्रक्रिया के लिए win10 पर काम नहीं करते। जीत 10 में सभी पृष्ठभूमि प्रक्रिया नाम की है RuntimeBroker.exeऔर जब मारने की कोशिश कुछ भी नहीं हुआ।
मुस्तफा

106
taskkill /f /im "devenv.exe"

यह जबरन "devenv.exe" नाम के साथ पिड को मार देगा

nix'y मार कमांड पर -9 के बराबर


3
यह तब तक काम नहीं आया जब तक कि मैंने कमांड में / f फ्लैग नहीं जोड़ा। धन्यवाद!
डेनिस एम। रसोई

4
यह दिए गए नाम के साथ सभी प्रविष्टियों को मार देगा । विशेष रूप से काम जब एक कार्यक्रम backfires और पृष्ठभूमि में 1000 बार notepad.exe खोलता है:] * अहम *
रिचर्ड डे बुद्धि

8

चूंकि TASKKILL कुछ होम / बेसिक संस्करणों की खिड़कियों पर अनुपलब्ध हो सकता है, यहाँ कुछ विकल्प हैं:

TSKILL processName

या

TSKILL PID

मन है कि प्रत्यय processNameनहीं होना चाहिए .exeऔर 18 अक्षरों तक सीमित है।

एक अन्य विकल्प है WMIC:

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

विकी अपने एसक्यूएल-जैसे मिलान वाले टास्ककिल की तुलना में और भी अधिक लचीलेपन की पेशकश करता है। इसके अलावा आप उपलब्ध दायरों wmic Path win32_process getको देख सकते हैं जिन्हें आप फ़िल्टर कर सकते हैं (और %वाइल्डकार्ड के रूप में इस्तेमाल किया जा सकता है)।


5

मैं एक डेवलपर के रूप में मान रहा हूं, आपके पास अपनी मशीन पर कुछ हद तक प्रशासनिक नियंत्रण है। यदि ऐसा है, कमांड लाइन से, msconfig.exe चलाएँ। आप कई प्रक्रियाओं को शुरू करने से भी हटा सकते हैं, जिससे उपर्युक्त समाधानों के साथ उन्हें मारने की आवश्यकता समाप्त हो जाएगी।


5

जाओ Autoruns मार्क Russinovich, Sysinternals पुरुष कि खोज की सोनी रूटकिट ... बेस्ट सॉफ्टवेयर मैंने कभी चीजें हैं जो स्वचालित रूप से आरंभ की सफाई के लिए उपयोग किया है से।


4

PSKill डाउनलोड करें । एक बैच फ़ाइल लिखें जो इसे प्रत्येक प्रक्रिया के लिए कहता है जिसे आप मृत चाहते हैं, प्रत्येक के लिए प्रक्रिया के नाम से गुजर रहा है।



0

कृपया नीचे दिए गए तर्क को ढूंढें जहां यह स्थिति पर काम करता है।

यदि हम केवल कॉल करते हैं taskkill /im applicationname.exe, तो यह केवल तभी मारेगा जब यह प्रक्रिया चल रही हो। यदि यह प्रक्रिया नहीं चल रही है, तो यह एक त्रुटि है।

इसलिए जैसा कि पहले takskillकहा जाता है, जांच करने के लिए एक जांच की जा सकती है ताकि यह सुनिश्चित taskkillहो सके कि प्रक्रिया चल रही है, तभी इसे निष्पादित किया जाएगा, ताकि यह त्रुटि न हो।

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

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

1
आसान बस की त्रुटि संदेश रीडायरेक्ट करने के लिए taskkillकरने के लिएnul
स्टीफ़न

0

यहां मैंने एक उदाहरण कमांड लिखा है जिसे आप अपनी cmdकमांड लाइन प्रॉम्प्ट में पेस्ट कर सकते हैं और इसके लिए लिखा गया है chrome.exe

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

के लिए बस PIDनीचे tasklistकमांड पर सूचीबद्ध सभी एस लेता है और TASKKILL /PIDहर पर निष्पादित करता हैPID

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

यदि आप बैच फ़ाइल के लिए उपयोग करते हैं तो% P के बजाय %% P का उपयोग करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.