सवाल मैं विंडोज़ में निष्पादन योग्य स्थान कैसे ढूंढूं?


मुझे याद आया कि मैंने एक उपकरण का इस्तेमाल किया था where कंसोल में इस तरह के किसी भी निष्पादन योग्य कार्यक्रमों के लिए स्थानों को खोजने के लिए:

 C:\Tmp\Where myTool.exe
 C:\Program Files\MyApp\myTools.exe
 ....

अब मुझे यह टूल नहीं मिल रहा है। सुनिश्चित नहीं है कि क्या उस खोज को करने के लिए विंडोज में एक बिल्ड-इन टूल है?


106
2017-09-30 17:06


मूल


पर विभिन्न जवाब क्या विंडोज़ पर 'कौन सा' बराबर है? - स्टैक ओवरफ़्लो - Satanicpuppy
यदि एप्लिकेशन चल रहा है और आपको इसके स्थान को जानने की आवश्यकता है, प्रक्रिया एक्सप्लोरर (Sys Internals से) का उपयोग करें। - Ganesh R.
where विंडोज 7 एंटरप्राइज़ पर मेरे लिए काम किया - Bohemian
पेजिंग ओपी: कृपया स्वीकृत उत्तर अपडेट करें :) - Jake
@ David.Chu.ca कृपया स्वीकृत उत्तर अपडेट करें - Matt Frear


जवाब:


मुझे लगता है कि आप सोच रहे होंगे कौन कौन से लिनक्स में कमांड

$ which bash
/bin/bash

मुझे विंडोज़ में एक समकक्ष उपकरण के बारे में पता नहीं है।

संपादित करें: मुझे बस याद आया कि एक पैकेज कहा जाता है यूनिक्स उपयोग करता है विंडोज के लिए जो आपके लिए यह कार्यक्षमता प्रदान करेगा।


5
2017-09-30 17:11



github.com/bmatzelle/gow/wiki यूनिक्स यूटिल्स का वंशज है जो विंडोज पर जीएनयू नामक उपयोग करने के लिए अधिक सुविधाजनक है। इसमें अधिक उपयोगिताएं और इंस्टॉलर हैं। - Simon D
डेमिट मैं डाउनवोट नहीं कर सकता। ओपी सही था और एक "where.exe" है। नीचे दिए गए उत्तर को देखें: superuser.com/a/440904/59929 - Piers Karsenbarg
यहां डाउनवोट करना चाहता था लेकिन प्रश्न का शब्द यह एक वैध जवाब बनाता है: I remembered that I used a tool...Now I cannot find this tool. Not sure if Windows has [it]। - Ben


StackOverflow उत्तर के अनुसार क्या विंडोज़ पर 'कौन सा' बराबर है?, where.exe यह विंडोज 7 और विंडोज सर्वर 2003 और बाद में करता है:

उदाहरण

C:\> where ping

आउटपुट:

C:\Windows\System32\PING.EXE

260
2018-06-24 11:41



इसे सही उत्तर के रूप में बनाया जाना चाहिए क्योंकि यह अतिरिक्त सॉफ़्टवेयर स्थापित किए बिना काम करता है - Cookie
इस जवाब का एक महत्वपूर्ण हिस्सा यह है कि शक्तियों में, where के लिए एक डिफ़ॉल्ट उपनाम है Where-Object, तो आपको इसके बजाय उपयोग करने की आवश्यकता है where.exe, या gcm/Get-Command - Dave Andersen
शक्तिशक्ति के बारे में क्या। मैं शक्तियों में इसे कैसे प्राप्त कर सकता हूं? - krv


संपादित करें:  मुझे जोड़ा जाना चाहिए था, अगर आप कमांड प्रॉम्प्ट से WHERE कमांड का उपयोग नहीं कर सकते हैं, तो अपने पैथ चर देखें। (बस "पथ" कमांड का उपयोग करें।) सुनिश्चित करें कि सी: \ विंडोज \ System32 आपके पथ में है। यही वह जगह है जहां "where.exe" स्थित है।

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

यह उन दोनों में से किसी एक से भी अधिक जटिल है, हालांकि, सामान्य रूप से एक साधारण

WHERE <file>

काम करेगा।

यह "पता लगाने" कमांड से अलग है जिसमें यह पूरे फाइल सिस्टम को नहीं देख रहा है। इसके बजाए, डिफ़ॉल्ट व्यवहार दो स्थानों में फ़ाइलों को देखना है:

  • वर्तमान निर्देशिका।
  • पाथ चर में सभी निर्देशिकाएं।

तो, निर्देशिका निर्दिष्ट किए बिना कमांड प्रॉम्प्ट से सीधे चलाए जा सकने वाले किसी भी कमांड को WHERE कमांड द्वारा मिलेगा। (क्योंकि ऐसा कोई भी आदेश पहले ही पैथ चर सूची में है।)

अगर आप खोजना चाहते हैं केवल कमांड पथ चर में, आप इसका उपयोग कर सकते हैं:

WHERE "$path:<search text>"

यदि, दूसरी तरफ, आप एक निर्देशिका पेड़ में फ़ाइल की सभी प्रतियां खोजना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

WHERE /R <Top Level Directory> <search text>

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

उदाहरण के लिए फाइलें "dxdiag.exe" और "dxdiagn.dll" लें। निम्न आदेश और इसके आउटपुट पर ध्यान दें:

WHERE /R C:\Windows dxdiag

C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe

यह "dxdiag.exe" के सभी संस्करणों को वापस करने में सफल होता है क्योंकि ".exe" PATHEXT चर में एक्सटेंशन में से एक है। (नोट: "जहां dxdiag" भी काम करता, क्योंकि सी: \ विंडोज \ System32 पैथ चर में है।)

WHERE /R C:\Windows dxdiagn

दूसरी तरफ, कोई परिणाम वापस करने में विफल रहता है, क्योंकि ".dll" है नहीं पैथेक्स में।

इस मामले में, वाइल्डकार्ड जोड़कर परिणाम देखें:

WHERE /R C:\Windows dxdiagn*

C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll

यह सफलतापूर्वक लौटता है सब dxdiagn.dll के संस्करण।

अधिक जानकारी के लिए, "कहां /?" का उपयोग करें। उम्मीद है की यह मदद करेगा!


14
2017-09-27 01:23



where where  C:\Windows\System32\where.exe :) - vp_arth


उपयोग dir:

cd \
dir /s /b mytool.exe

cd \ पदानुक्रम के शीर्ष पर खोज शुरू होने के लिए भाग आपको ड्राइव की जड़ में बदल देता है।


8
2017-09-30 17:15



ऐसा लगता है कि एक कमांड लाइन विंडोज सर्च कर रहा है। - Ganesh R.
यह ड्राइव की एक पुनरावर्ती खोज करता है और हमेशा के लिए ले जाएगा। - djhowell
निष्पादन योग्य खोजने का एकमात्र तरीका है नहीं हैं पाथ पर्यावरण चर में यह करना है। उन्होंने कभी भी अपना रास्ता निर्दिष्ट नहीं किया, उन्होंने कहा कोई निष्पादन योग्य। - John T
यह निष्पादन योग्य लगता है लेकिन कुछ समय लगता है। - Michael Z
यह निश्चित रूप से केवल तभी काम करता है जब आप निष्पादन योग्य या नाम के कम से कम हिस्से का नाम जानते हों - Oliver Williams


ध्यान दें कि PowerShell के लिए कुछ चीजें थोड़ा अलग हो सकती हैं:

PS C:\Users\Rob.wb-devel> where ping

PS C:\Users\Rob.wb-devel> where git

PS C:\Users\Rob.wb-devel> whereis.bat git
C:\Program Files (x86)\Git\cmd\git.exe

PS C:\Users\Rob.wb-devel> where.exe git
C:\Program Files (x86)\Git\cmd\git.exe

4
2018-04-07 12:52





निराशाजनक है कि यह एक साधारण कमांड के रूप में अंतर्निहित नहीं है।

हालांकि, कई समाधान हैं, जिनमें से एक एक है बैच फ़ाइल

निम्नानुसार बैच फ़ाइल (जो.बैट) बनाएं:

@setlocal
@set P2=.;%PATH%
@for %%e in (%PATHEXT%) do @for %%i in (%~n1%%e) do @if NOT "%%~$P2:i"=="" echo %%~$P2:i 

यह स्थानीय निर्देशिका में दिखता है, एक एक्सटेंशन के साथ या बिना एक फ़ाइल नाम पैरामीटर लेगा, और वर्तमान निर्देशिका से या पीएटीएच में पहला मैच वापस कर देगा।

फिर इसे पसंद करें which cmd.exe cmd.exe को खोजने के लिए जो आपके द्वारा टाइप किए जाने पर निष्पादित होगा cmd


3
2017-09-30 18:23





विंडोज़ पर आप मुफ्त उपयोगिता का उपयोग कर सकते हैं सब कुछ खोज इंजन खोजना हाथों हाथ पूर्ण या आंशिक नाम से किसी भी फ़ाइल के लिए (यदि आपकी हार्ड डिस्क ntfs में स्वरूपित है)।


3
2017-09-30 19:26



इस और विंडोज़ खोज के बीच रात और दिन का अंतर। - AnthonyVO


अगर आप बस चाहते हैं कौन कौन से, द GnuWin32 परियोजना में व्यक्तिगत इंस्टॉलर के साथ यूनिक्स यूटिल का एक गुच्छा है।


1
2017-09-30 17:19





पावरशेल में

(@($env:path.split(";")) + (pwd).Path)  | where { dir $_ -ErrorAction SilentlyContinue |? Name -eq foo.exe }

आप आसानी से इसे एक सीएमडीलेट में परिवर्तित कर सकते हैं।


1
2017-09-21 17:59





यदि आपको इसे लॉन्च करने के लिए बस पथ की आवश्यकता है, तो स्टार्ट कमांड का उपयोग करना अक्सर बेहतर होता है। उदाहरण के लिए, आप क्रोम {e | ium} शुरू करने के लिए "प्रारंभ chrome.exe" का उपयोग कर सकते हैं, भले ही इसे इंस्टॉल किया गया हो।


0
2018-04-24 16:35