चुनिंदा सिस्टम शेड्यूल किए गए कार्यों को हटाना


10

विंडोज 7 बॉक्स में निर्धारित कार्यों की एक सूची है -> डिफ़ॉल्ट विंडोज कार्य + निश्चित कस्टम कार्य जो सभी एक निश्चित स्ट्रिंग के साथ शुरू होते हैं। पिछला कोड कमांड के साथ सभी कार्यों को हटा दिया गया है:

schtasks /Delete /TN * /F

इसके बजाय हम डिफ़ॉल्ट Windows कार्यों को बनाए रखने, और चुनिंदा कार्यों कि एक निश्चित स्ट्रिंग कहते हैं के साथ शुरू हटाना चाहते हैं abctask1, abctask2। आगे कैसे बढ़ें? धन्यवाद!


क्या आपने कुछ का उपयोग करने की कोशिश की है schtasks /Delete /TN abctask* /F?
जोनाह बिशप

1
काम नहीं करता। मुझे लगता है कि * वाइल्डकार्ड अपेक्षा के अनुरूप काम नहीं करता है।

यदि वाइल्डकार्ड उस तरीके से ठीक से काम नहीं करता है, तो आपका सबसे अच्छा शर्त /queryविकल्प के साथ कार्यों की सूची प्राप्त करना हो सकता है , उनके माध्यम से लूप प्राप्त करें जो आपके वांछित पैटर्न से मेल खाते हों, और उन्हें उनके पूर्ण नामों का उपयोग करके मार दें। इस तरह के कार्य के लिए एक पर्ल स्क्रिप्ट की तरह कुछ सबसे अच्छा हो सकता है।
जोनाह बिशप

जवाबों:


5

आपके कार्यों को एक शब्द माना (उदाहरण के लिए, abctask1, abctask2 - "abc task 1") नहीं, यह काम करना चाहिए:

for /f %%x in ('schtasks /query ^| findstr abctask') do schtasks /Delete /TN %%x /F

1
मुझे लगता है कि find, 1/4 से कम होने से आकार findstrतेजी से प्रतिक्रिया करेगा। इसके अलावा, दोनों खोज शब्द को घेरने के लिए उद्धरण चिह्नों के उपयोग का समर्थन करते हैं ( findउन्हें आवश्यकता होती है), ऐसा करने से आप "abc task 1" जैसे कार्यों का पता लगा पाएंगे।
जेम्स के

धन्यवाद मार्क, वास्तव में यह %% x को स्वीकार नहीं किया, मैंने इसे% x में बदल दिया और यह काम कर गया! :) चीयर्स! :)

@ user1620230 मैंने मान लिया कि आप इसे बैच फ़ाइल में चला रहे हैं। %% x में डबल-पर्केंट्स को एक बैच फ़ाइल में आवश्यक है, जबकि कमांड लाइन पर% x की आवश्यकता है। @JamesK, मैं तुम्हें बहुत मुश्किल में किसी भी वास्तविक दुनिया गति अंतर को खोजने के लिए दबाया जा चाहते हैं लगता है findबनाम findstrविशेष रूप से कुछ इस छोटे में,। :-)

अहा, आपको मिल गया :) खैर आखिरकार इसे एक बैच स्क्रिप्ट में इस्तेमाल किया जा सकता है। जानकारी के लिए धन्यवाद :)

schtasks / query 50 अक्षरों के कार्य नामों को काटता है। / Xml विकल्प ट्रंकेशन से बचा जाता है। for /f "tokens=2" %%x in ('schtasks /query /xml ^| findstr taskname') do
डेविड

3

यदि आप चाहते हैं कि वाइल्डकार्ड (*) को हटाने के लिए आपके कार्य के चयन में उपयोग किया जाए, तो इस सरल बैच कमांड का उपयोग करके देखें:

(केवल नमूना)

echo off
del %SystemDrive%\Windows\Tasks\Google*
del %SystemDrive%\Windows\Tasks\Facebook*

2

कुछ स्टॉक विंडोज शेड्यूल किए गए कार्यों को स्वचालित करने का एक तरीका ढूंढते हुए मैं यहां समाप्त हुआ। बैकस्लैश और स्पेस के साथ कार्य नामों को ठीक से संभालने के लिए मुझे कोई भी मौजूदा उदाहरण नहीं मिला। मैंने पाया कि सीएसवी प्रारूप का उपयोग करना और खोज कमांड ने मेरे लिए सबसे अच्छा काम किया:

for /f "tokens=1 delims=," %%x in ('schtasks /query /fo csv ^| find "\Microsoft\Windows\Application Experience\"') do schtasks /Delete /TN %%x /F

2

आप लोगों ने यहाँ काफी मदद की है। जबकि उपरोक्त छोटे नामों के लिए काम करता है और 'user3490' ने स्ट्रिंग को काफी अच्छा जोड़ा है, यह अभी भी रिक्त स्थान वाले नामों के साथ काम नहीं करता था। मैंने 'के साथ SCHTASKS काम के साथ वाइल्डकार्ड का उपयोग करते हुए पाया।' इसके बजाय '*' और स्ट्रिंग को एक दिलचस्प संशोधन मिला जिससे बहुत आवश्यक अवसर मिल सके! मैं बैच फ़ाइल में उपयोग किए गए उदाहरणों के नीचे पेस्ट करूँगा:

for /f "tokens=2 delims=\" %%x in ('SCHTASKS /QUERY /FO:LIST ^| FINDSTR "AVGPCTuneUp_Task."') do SCHTASKS /DELETE /F /TN "\%%x"

for /f "tokens=2 delims=\" %%x in ('SCHTASKS /QUERY /FO:LIST ^| FINDSTR "AMD.Updater."') do SCHTASKS /DELETE /F /TN "\%%x"

for /f "tokens=2 delims=\" %%x in ('SCHTASKS /QUERY /FO:LIST ^| FINDSTR "Lenovo.Smile."') do SCHTASKS /DELETE /F /TN "\%%x"

उत्कृष्ट संकेत के लिए आप सभी को यहाँ धन्यवाद! मुझे पता है कि यह विषय एक साल से अधिक पुराना है, लेकिन मुझे आशा है कि यह किसी और की मदद करता है जो शायद अब तक इसे प्राप्त नहीं कर पाए हैं।


1

मार्क का उत्तर तब तक ठीक काम करता है जब तक कि आपके पास शेड्यूल किए गए कार्य नाम कम हों, लेकिन schtasks /query(तालिका प्रारूप) का डिफ़ॉल्ट आउटपुट कार्य नामों को 32 वर्णों में विभाजित करता है, जो उन्हें हटाने का प्रयास करते समय त्रुटियों का कारण बनता है।

यदि आपको ऐसे कार्यों से निपटने की आवश्यकता है जिनके नाम लंबे हैं, तो मैं इसके बजाय सूची आउटपुट प्रारूप का उपयोग करने की सलाह दूंगा, जो कि कम नहीं है:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr abctask') do schtasks /Delete /TN %%x /F

यदि आप जिन कार्यों को हटाना चाहते हैं, उनमें एक सामान्य उपसर्ग है, तो आप मिलान से आगे मैच को परिष्कृत कर सकते हैं:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr ^^abctask') do schtasks /Delete /TN %%x /F
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.