मैं यह निर्धारित करने के लिए विंडोज कमांड लाइन के माध्यम से एक तरीका निकालने की कोशिश कर रहा हूं कि क्या कोई प्रक्रिया नहीं है।
मुझे पता है कि सभी प्रक्रियाओं में तकनीकी रूप से एक माता-पिता होते हैं जो ओएस या जो कुछ भी नियंत्रित करते हैं, लेकिन सरलता के लिए "इसका कोई माता-पिता नहीं है"। उदाहरण के लिए, यदि आप एक एक्सप्लोरर विंडो खोलते हैं, तो यह उसके प्रोसेस ट्री के शीर्ष पर प्रोसेस एक्सप्लोरर में दिखाई देगा ।
जब मैं प्रक्रिया पर एक विकट क्वेरी करता हूं, हालांकि, मुझे 'parentProcessPID' के लिए PID मिलता है। जब मैं कोशिश करता हूं और टास्कलिस्ट का उपयोग करके उस पीआईडी को देखता हूं, तो यह कहता है कि पीआईडी को मान्यता नहीं है। मैंने इस तरह की कुछ प्रक्रियाओं पर ध्यान दिया है और उन्हें अलग-अलग मूल प्रक्रियाएँ लगती हैं जो टास्कलिस्ट के माध्यम से सभी दुर्गम हैं। यदि किसी प्रक्रिया में कोई पेरेंट प्रक्रिया होती है जो टास्कलिस्ट के माध्यम से अप्राप्य होती है, तो क्या इसका मतलब है कि यह उसके प्रोसेस ट्री के "शीर्ष" पर है?
मैं पूछ रहा हूं क्योंकि मैं खुद से चल रहे प्रोग्राम और दूसरे प्रोग्राम के चाइल्ड प्रोसेस के रूप में चल रहे प्रोग्राम के बीच अंतर करने की कोशिश कर रहा हूं।
उदाहरण के लिए:
मान लीजिए कि मैं विंडोज स्टार्ट मेनू में जाता हूं और एक एक्सप्लोरर विंडो खोलता हूं। फिर, मैं एक cmd विंडो खोलता हूं और टाइप करता हूं explorer.exe
:। अब मेरे पास दो एक्स्प्लोरर हैं। एक cmd.exe की एक बच्चे की प्रक्रिया है और एक एक अकेले खड़े होने की प्रक्रिया है। मैं सक्षम होना चाहता हूं, एक विकी या टास्कलिस्ट क्वेरी के माध्यम से, सभी explorer.exe
प्रक्रियाओं को एकल करने के लिए जो एक स्टैंड-अलोन प्रक्रिया है। इसलिए, मैंने विंडोज स्टार्ट मेनू के माध्यम से जो प्रक्रिया शुरू की थी उसे लौटाया जाना चाहिए न कि cmd.exe द्वारा शुरू की गई प्रक्रिया।
मैं इस मुद्दे पर चल रहा हूं कि हर प्रक्रिया की एक मूल प्रक्रिया आईडी होती है, और मुझे नहीं पता कि किसी प्रोग्राम से आने वाली मूल प्रक्रिया या OS से संबंधित प्रक्रिया से आने वाली मूल प्रक्रिया के बीच अंतर कैसे किया जाए। अगर मैं निम्नलिखित कर सकता हूं, तो यह बहुत अच्छा होगा:
स्यूडोकोड:
wmic process where name=explorer.exe get parentProcessID,processID
tasklist /fi "PID eq <parentProcessID>" 2>&1> log.txt
if(log.txt contains "INFO: No tasks are running which match the specified criteria."){
// Parent PID is not recognized by tasklist
// Do something
}
लेकिन मेरा तर्क सही है तो मैं अनिश्चित हूं।