जब मैं cmd-line से कोई ऐप चलाता हूं, तो मुझे exe का रास्ता कैसे पता चलता है?


7

जब मैं विंडोज में डॉस प्रॉम्प्ट से एक ऐप चलाता हूं, तो विचाराधीन कमांड अक्सर वर्तमान निर्देशिका में नहीं होता है, लेकिन पाथ पर्यावरण चर के माध्यम से पाया जाता है। जिस वास्तविक EXE को चलाया जा रहा है उसका पथ खोजने का सबसे तेज़ तरीका क्या है?


1
"पथ" आपको एक सूची देता है, आप प्रत्येक को मैन्युअल रूप से जांच सकते हैं। हालांकि अनुपस्थित मन से मारा नहीं है; वापसी से पहले, या आपको अपने रास्ते के पुनर्निर्माण में 10 मिनट का समय
लगाना

जवाबों:


7

विस्टा पर आप खोज मेनू में निष्पादन योग्य का नाम टाइप कर सकते हैं, जब यह परिणाम में प्रदर्शित होता है, तो r-क्लिक करें और मेनू से "फ़ाइल स्थान खोलें" चुनें।

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

एक और तरीका विंडोज पॉवर्सशेल का उपयोग करना है, बिना उद्धरण के कमांड " गेट -कमांड एक्जीक्यूटेबल" का उपयोग करें और आप जिस निष्पादन योग्य की तलाश कर रहे हैं उसके लिए आपको रास्ता मिल जाएगा। कमांड के लिए शॉर्टकट gcm है, इसलिए इस तरह का उपयोग करें "gcm calc"


1
इस उत्तर को स्वीकार करना, क्योंकि यह सीधे मेरे प्रश्न का समाधान करता है। पॉवरशेल अप्रोच भी सबसे तेज़ तरीका है। :) दुर्भाग्य से ... मैं एक अलग DOS बैच फ़ाइल चलाने के बाद एक EXE का पथ खोजना चाहता हूं जो PATH पर्यावरण चर को संशोधित करता है। Powershell में, बैच फ़ाइल को चलाने के लिए अलग cmd.exe चलाने की आवश्यकता होती है, जिसका अर्थ है कि PowersH in Powershell अप्रभावित है और इसलिए मेरा लक्ष्य exe (tf.exe) अभी भी स्थित नहीं हो सकता है। फिर भी, मुझे कहना चाहिए कि मेरे प्रश्न में। उस समय यह महत्वपूर्ण नहीं था। : - /
मल रॉस

1
विंडोज 7 (शायद विस्टा भी) में टास्कमैनर का उपयोग करके, आप प्रक्रिया को राइट-क्लिक भी कर सकते हैं और "ओपन फाइल लोकेशन" चुन सकते हैं। इसके लिए आपको प्रक्रिया-खोजकर्ता की तरह 3-पार्टी सॉफ़्टवेयर स्थापित करने की आवश्यकता नहीं है। यदि आप प्रक्रियानाम जानते हैं, तो आप get-process processname | % { $_.path }निष्पादन योग्य-पथ को खोजने के लिए भी टाइप कर सकते हैं । हालांकि, यह हर प्रक्रिया के लिए काम नहीं करता है। मुझे उस नियम के लिए अभी तक नहीं मिला है ...
wullxz

5

यदि आपके पास साइबरविन स्थापित है, तो आप हमेशा 'जो' कमांड का उपयोग कर सकते हैं

C:> which notepad
/c/WINDOWS/system32/notepad

अच्छा। लेकिन कोशिश " which dir" ...
निक

+1, मुझे यह विचार पसंद आया - बस यह कि इसे यूनिक्स वातावरण की आवश्यकता है। आप यूनिक्स यूटिल बाइनरी का भी उपयोग कर सकते हैं। unxutils.sourceforge.net
nik

कई ऐसे कार्यान्वयन हैं जो यूनिक्स सबसिस्टम के बिना चल रहे हैं
Xetius

3

निम्नलिखित आज़माएँ:

@rem file which.bat (must be placed somewhere in %PATH%)
@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

जब आप which notepadकमांडलाइन में टाइप करते हैं ( cmd.exe):

C:\>which notepad
C:\Windows\System32\notepad.exe

काम नहीं करता ...
Chazt3n

@ Chazt3n यह इस समय निराधार लगता है। कृपया, स्पष्ट करें कि आप कैसे उपयोग करते हैं?
ओरिएंट

2

यदि आप वर्तमान में चल रहे किसी प्रोग्राम के बारे में पूछ रहे हैं, तो विंडोज कमांड लाइन के लिए कुछ भी आउट-ऑफ-द-बॉक्स पेश नहीं करता है, जहां तक ​​मुझे जानकारी है, इससे आपको निष्पादन योग्य का पूरा रास्ता मिल जाता है।

यदि आप उस प्रोग्राम के बारे में पूछ रहे हैं जिसे आप कमांड लाइन पर लागू करने में सक्षम हैं, तो आप whereकमांड का उपयोग कर सकते हैं :

C:\> where fsutil
C:\Windows\System32\fsutil.exe

C:\>

यह उन सभी कार्यक्रमों के लिए काम करता है, जिन्हें आप अपने वर्तमान पैट वैरिएबल या वर्तमान वर्किंग डायरेक्टरी में इनवाइट कर सकते हैं। यह डीआईआर जैसे अंतर्निहित कमांड का पता नहीं लगाएगा, लेकिन इसकी उम्मीद की जानी चाहिए।


एक साइड नोट के रूप में, जहां विंडोज एक्सपी या उससे पहले डिफ़ॉल्ट रूप से टूल शामिल नहीं है। मेरा मानना ​​है कि Microsoft ने इसे विस्टा या 7 के साथ शुरू किया था, लेकिन मेरे पास पुष्टि के लिए एक भी उपलब्ध नहीं है।
जेसी

0

तुम कोशिश कर सकते हो

CD \
dir /s command.*

या एक्सप्लोरर से केवल कमांड नाम की खोज करें।

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