टास्ककिल - एक विशिष्ट स्ट्रिंग के साथ समाप्त होने वाले विंडो शीर्षक के साथ कार्य


5

मुझे खिड़की के शीर्षकों के साथ सभी एमएस ऑफिस कम्युनिकेटर कार्यों को समाप्त करने के लिए एक बैच प्रोग्राम लिखना होगा (आमतौर पर पैटर्न के साथ समाप्त होता है - वार्तालाप)।

मैंने कोशिश की

टास्ककिल / FI "WINDOWTITLE eq * वार्तालाप" / IM कम्युनिकेटर। exe

लेकिन '*' से शुरू होने वाला वाइल्डकार्ड पैटर्न काम नहीं करता है। फोलिंग एरर देता है

त्रुटि: खोज फ़िल्टर को पहचाना नहीं जा सकता।

किसी भी समाधान के लिए कोई सुझाव बहुत सराहना की जाएगी!


1
'*' फ़िल्टर किए गए पाठ की शुरुआत में काम नहीं कर सकता
Ofiris

जवाबों:


2

रोजियर द्वारा इस प्रश्न से आंशिक रूप से प्रेरित एक बैच फ़ाइल है :

@echo off

for /F "delims=" %%a in ('tasklist /fo list /v') do (
      call :Sub %%a
)
exit /b
 

:Sub
set Line=%*
set BOL4=%Line:~0,4%
set BOL13=%Line:~0,13%
set Value=%Line:~14%
if "%BOL4%"=="PID:" (
      set save_PID=%Value%
      exit /b
)
if "%BOL13%"=="Window Title:" (                          // नोट नीचे।
      echo %Value% | findstr /r /c:"- Conversation.$" > nul
      if not errorlevel 1 (
            echo %save_PID%
            REM taskkill /pid %save_PID%
      )
      exit /b
)
exit /b

मैंने पाया कि मुझे इसके लिए .नियमित अभिव्यक्ति के अंत में जोड़ने की आवश्यकता थी

echoस्ट्रिंग | findstr /rनियमित अभिव्यक्ति $ के साथ समाप्त हो रही है

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

जाहिर है कि आप उस taskkillकमांड को अन-कमेंट-आउट करेंगे, जिसे आपने यह परीक्षण किया है।


3

मैं एक आदेश के लिए उपयोग करने वाले बैच फ़ाइल उत्तर की सराहना करता हूं।

यहाँ एक और तरीका है, यहाँ एक अतिरिक्त विकल्प के रूप में प्रस्तुत किया गया है। दृष्टिकोण प्रदान किए गए अन्य उत्तर की तुलना में भिन्न है।

सबसे पहले, देखें कि क्या आप एमएस कम्युनिकेटर प्रक्रियाओं को WMIC के साथ पा सकते हैं। उदाहरण के लिए:

WMIC प्रक्रिया सूची पूर्ण

या, संपत्ति = मान प्रारूप में लंबवत के बजाय किसी तालिका में क्षैतिज रूप से जानकारी दिखाने के लिए, यह करें:

WMIC प्रक्रिया सूची पूर्ण / प्रारूप: तालिका

या शायद, उस सीमा को सीमित करने के लिए:

WMIC प्रक्रिया का नाम / प्रारूप प्राप्त करें: तालिका

(और पहली पंक्ति को अनदेखा करें)

यह विंडो शीर्षक दिखाने के लिए प्रतीत नहीं होता है, लेकिन कई अन्य सूचनाओं को दिखा सकता है जिनका उपयोग विशिष्ट नामों की तरह Communicator इंस्टेंस को पहचानने के लिए किया जा सकता है।

फिर, आप अपने निष्कर्षों को कम करते हुए, अधिक आक्रामक हो सकते हैं। निम्नलिखित उदाहरणों के लिए लग रहा है कि "name.exe" के साथ समाप्त होता है (उदाहरण के लिए, "filename.exe", "myname.exe")

WMIC PROCESS WHERE "का वर्णन" %% name.exe '"LIST FULL / FORMAT: TABLE की तरह है

वह सब जो आपकी आज्ञा को ठीक करने के लिए शोध था। (आखिरकार, आप वास्तव में गलत प्रक्रियाओं को समाप्त करना शुरू नहीं करना चाहते हैं।)

अंत में, एक बार जब आपका सभी शोध हो जाता है, तो आप जानते हैं कि आप केवल उस सामान को सूचीबद्ध कर सकते हैं जिसे आप समाप्त करना चाहते हैं, फिर मारना शुरू करें।

WMIC PROCESS WHERE "विवरण" %% name.exe '"DELETE की तरह

इस विधि के बारे में वास्तव में अच्छा हिस्सा आप जल्दी से स्वचालन के लिए इस्तेमाल किया जा सकता है कि जानकारी के बहुत सारे इकट्ठा करने में सक्षम होने के लिए मिल रहा है।


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