सवाल विंडोज़ कहां के बराबर है?


यूनिक्स के बराबर है कहाँ है विंडोज़ में कमांड?

ताकि मैं यह पता लगा सकूं कि वास्तव में मैं कहां चला सकता हूं।


151
2017-08-11 10:50


मूल




जवाब:


कहा पे आदेश जो आप चाहते हैं वह करता है और कम से कम Windows 98 के लिए संसाधन किट पर वापस जाता है, और डिफ़ॉल्ट रूप से सर्वर 2003, Vista और नए में शामिल किया गया है:

C:\>where csc
C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe

अगर कोई तर्क (Vista पर) के साथ निष्पादित किया गया है, तो यह मेरे पसंदीदा संदेशों में से एक में परिणाम देता है:

C:\>where
ERROR: The operation completed successfully.

यदि PowerShell में निष्पादित हो, तो पथ के साथ किसी भी 'कहां' उपनाम या स्क्रिप्ट से अलग करने के लिए '.exe' को शामिल करना सुनिश्चित करें। ('कहां' कहां-Object.ps1 के लिए एक ठेठ उपनाम है)

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

181
2017-09-10 23:00



हर दिन मैं कुछ नया सीखता हूं ... - Rubens Mariuzzo
एक तरह से दुख की बात है where विंडोज 7 में अभी उपयोग सहायता लौटाता है। इसे अपने लिए देखना चाहता था: पी - Svish
where एक्सपी में उपलब्ध नहीं है - Tom Roggero
@TomRoggero, मैं और अधिक स्पष्ट हो सकता था। यह विंडोज 98 के साथ शुरू होने वाली वैकल्पिक संसाधन किट का हिस्सा है, और केवल XP के बाद संस्करण के लिए बेस इंस्टॉल में शामिल है। - Kevin


हैकरिश जो.cmd:

@echo off
@set PATH=.;%PATH%

@rem 
@rem about:  something similar like the unix-alike-which, but with
@rem         within pure cmd
@rem 

if "%1" == "" (
    @echo Usage: 
    @echo.
    @echo   which 'cmd'
    @echo.
    @echo.if 'cmd' is not found, ERRORLEVEL is set to 1
    @echo.  
) else (
    ( @for %%f in (%1 %1.exe %1.cmd %1.bat %1.pif) do if not "%%~$PATH:f" == "" ( @echo %%~$PATH:f ) else @set ERRORLEVEL=1) 
)

6
2017-09-10 21:08



यह पुराने सिस्टम के लिए एक अच्छा फिक्स है, लेकिन आपको पता होना चाहिए कि इसके परिणामस्वरूप कुछ quirks। यह निर्देशिका से मेल खाता है, केवल प्रत्येक एक्सटेंशन के पथ में पाया गया पहला परिणाम देता है, और इसमें PATHEXT पर्यावरण चर में पाए गए प्रत्येक एक्सटेंशन को शामिल करना चाहिए। - Kevin
हाँ, यह मेरा एक छोटा सा हैक है, जब मैंने इसे चिपकाया तो मैंने तुरंत% PATHEXT% की संभावना देखी :) - akira


इस्तेमाल करें कहा पे आदेश:

> where app.exe

यह आपके लक्ष्य को प्राप्त करने का सबसे अच्छा तरीका है।

आप PowerShell कमांड का भी उपयोग कर सकते हैं:

> $env:path.Split(';') | gci -Filter app.exe

और विस्तारित संस्करण इस तरह दिखता है:

 > $env:path.Split(';') | select -Unique | ? {$_ -and (test-path $_)} | gci -Filter app.exe

6
2017-08-04 21:39



यह सबसे अच्छा जवाब है - skan


कहीं "वहां से बाहर" मुझे यह बैच फ़ाइल मिली whereis.bat:

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

अद्यतन: शायद मुझे यह मिला यहाँ


2
2017-11-09 05:00





कम से कम एक है विंडोज पोर्ट के लिए which उपयोगिता।


1
2017-08-11 10:53





एक अलग (जीयूआई) दृष्टिकोण, लेकिन देखो सब कुछ


0
2017-11-09 06:52



यह कुछ अलग है। यह निश्चित रूप से आपको प्रश्न का उत्तर देने में मदद नहीं करता है "जब मैं वर्तमान निर्देशिका में <command> निष्पादित करता हूं, तो निष्पादन योग्य निष्पादन योग्य होता है"और ओपी क्या पूछ रहा है। - Dawid Ferenczy


मैं आज इस के लिए खोज कर रहा था और चूंकि मैं संसाधन किट के बिना एक्सपी पर हूं, इसलिए मैं निम्नलिखित कमांड के साथ पावरहेल में बदल गया:

dir -path c:\ -filter ffmpeg.* -r

0
2017-07-14 15:46



मैं पावरहेल में कुशल नहीं हूं लेकिन ऐसा लगता है कि आप पूरी निर्देशिका पेड़ से खोज रहे हैं। यह बराबर नहीं है where जो केवल में खोज करता है %PATH%। इसके अलावा यह बहुत धीमा है और फ़ोल्डरों के लिए त्रुटियां देता है जिनके पास पढ़ने की अनुमति नहीं है - phuclv
सहमत ... मुझे कार्यक्षमता की एक सटीक प्रति की आवश्यकता नहीं थी, केवल एक प्रोग्राम का पता लगाने की क्षमता। - KalenGi