2012-11-22 26 views
11

मैं भाग गया खिड़कियों पर निम्न आदेश कमांड प्रॉम्प्टखिड़कियों कमांड लाइन पर कार्यसूची के उत्पादन में से एक विशेष क्षेत्र को निकालने के लिए कैसे

C:>tasklist /fi "Imagename eq BitTorrent.exe" 

Image Name   PID  Session Name  Session # Mem Usage 
================== ======== ================= =========== ========= 
BitTorrent.exe  6164  Console     3  24,144K 

है

उत्पादन जिनमें से मैं करने की जरूरत है उपरोक्त आउटपुट से केवल एक फ़ील्ड, पीआईडी, यानी 6164 निकालें।

मैं इसे कैसे प्राप्त करूं? अधिक आम तौर पर, मैं विंडोज कमांड लाइन पर कमांड के आउटपुट से फ़ील्ड्स का सबसेट (1/अधिक) कैसे निकालूं?

उत्तर

7

सबसे आसान तरीका उपयोग करने के साथ है WMIC:

c:\>wmic process where caption="BitTorrent.exe" get ProcessId 

संपादित करें:

for /f "tokens=1,2 delims= " %A in ('tasklist /fi ^"Imagename eq cmd.exe^" ^| find ^"cmd^"') do echo %B 

यहाँ के सीएमडी प्रयोग किया जाता है: WMIC रूप घर का हिस्सा खिड़कियों के संस्करण नहीं है कैप्शन। आप इसे खोज और कार्यसूची पैरामीटर में बदल सकते हैं। %%B इस बैच फ़ाइल में प्रयोग किया जाता है, तो आप की आवश्यकता होगी और %%A

+2

मैं मशीन पर कुछ भी स्थापित और मानक खिड़कियों स्थापित का उपयोग करने के –

+0

wmic windows.Except घर संस्करणों के लिए एक मानक आदेश है नहीं कर सकते ... मैं वैसे भी मेरा उत्तर में अन्य approches जोड़ देंगे – npocmaka

+0

पुनश्च:।। याद रखें आपको राघ सेट करने की जरूरत है टोकन टी अगर ऐप फ़ाइल नाम में रिक्त स्थान हैं। – ElektroStudios

3

आप को wmic आदेश का उपयोग कर सकते हैं उत्पादन फ़िल्टर नहीं:

wmic process where name="BitTorrent.exe" get processid | MORE +1 

अद्यतन: एक और तरीका है:

@Echo OFF 
FOR /F "tokens=2" %%# in ('tasklist /fi "Imagename eq winamp.exe" ^| MORE +3') do (Echo %%#) 
Pause&Exit 

पुनश्च: याद रखें कि यदि ऐप फ़ाइल नाम में रिक्त स्थान हैं तो आपको टोकन को सही सेट करने की आवश्यकता है।

13

पिछले जवाब की तरह, लेकिन tasklist में विशिष्ट स्विच का उपयोग करता है हैडर छोड़ सकते हैं और चित्र के नाम में सही ढंग से ध्यान दिए बिना रिक्त स्थान की व्यवहार करने के लिए:

for /f "tokens=2 delims=," %F in ('tasklist /nh /fi "imagename eq BitTorrent.exe" /fo csv') do @echo %~F 

(cmd लाइन से रन सीधे रूप में, बैच से चलाते हैं %F के साथ बदलें %%F

+0

सभी 3 उत्तरों मेरे लिए काम करते हैं, लेकिन मैं उन्हें समझ नहीं पा रहा हूं :( क्या कोई अपने कोड खंड को समझा सकता है या मुझे 'for/f', 'tokens', 'delims' –

+0

के लिए प्रलेखन में इंगित कर सकता है माता-पिता में 'आदेश' चलाएं , फिर इसके आउटपुट की प्रत्येक पंक्ति के लिए: कोमा को डिलीमीटर के साथ टोकननाइज (लाइन) और% वैरिएबल ('% F') में दूसरा टोकन डालें और फिर दिए गए वैरिएबल वैल्यू के साथ 'इको' चलाएं (सैन्स कोट्स, यही वह टिल्डे है के लिए है)।'For' वाक्यविन्यास ('f/f' सहित) पर अधिक सामान्य स्पष्टीकरण के लिए बस कमांड लाइन – wmz

+0

पर' सहायता 'के लिए धन्यवाद। धन्यवाद @ wmz –