विंडोज कमांड लाइनवर कमांडचा पूर्ण मार्ग शोधणे

Batch

परिचय: विंडोजवर लपलेले कमांड पथ उघड करणे

Windows कमांड लाइनवर स्क्रिप्ट्स आणि कमांड्ससह काम करणाऱ्या विकसकांसाठी पथ संघर्ष ही वारंवार समस्या असू शकते. जेव्हा तुमची एखादी स्क्रिप्ट दुसऱ्या प्रोग्रामने पाथमध्ये ठेवल्यामुळे ती ओव्हरसावली केली जाते, तेव्हा दिलेल्या कमांडचा पूर्ण मार्ग ओळखणे महत्त्वाचे ठरते. ही परिस्थिती अनेकदा वापरकर्त्यांना UNIX 'कोणत्या' कमांडच्या समतुल्य शोधण्यास प्रवृत्त करते, जे कमांडचा अचूक मार्ग शोधणे सोपे करते.

UNIX सिस्टीमवर, 'कोणत्या' कमांडचा वापर विशिष्ट आदेशाचा संपूर्ण मार्ग दाखवण्यासाठी केला जातो, ज्यामुळे अशा छायांकित समस्यांचे निराकरण करण्यात मदत होते. तथापि, विंडोज वापरकर्त्यांना आश्चर्य वाटेल की त्यांच्या प्लॅटफॉर्मवर समान उपयुक्तता उपलब्ध आहे का. पुढील चर्चेत, आम्ही समान कार्यक्षमता प्राप्त करण्यासाठी Windows वर उपलब्ध पर्यायांचे अन्वेषण करू आणि पथ-संबंधित समस्या प्रभावीपणे व्यवस्थापित करण्यात मदत करू.

आज्ञा वर्णन
setlocal बदलांचा जागतिक वातावरणावर परिणाम होणार नाही याची खात्री करून, बॅच फाइलमध्ये पर्यावरणीय चलांचे स्थानिकीकरण सुरू होते.
for %%i in ("%command%") do प्रत्येक आयटमवर ऑपरेशन्स करण्यास अनुमती देऊन, निर्दिष्ट केलेल्या आयटमच्या संचाद्वारे पुनरावृत्ती होते.
if exist "%%j\%%~i.exe" दिलेल्या मार्गावर विशिष्ट फाइल अस्तित्वात आहे का ते तपासते.
param पॉवरशेल स्क्रिप्टला दिलेले पॅरामीटर्स परिभाषित आणि पुनर्प्राप्त करते.
Join-Path पॉवरशेलमध्ये विभाजक वर्ण योग्यरित्या हाताळून, दोन किंवा अधिक स्ट्रिंग्स पाथमध्ये एकत्र करते.
Test-Path पॉवरशेलमध्ये निर्दिष्ट मार्ग किंवा फाइलचे अस्तित्व सत्यापित करते.
os.pathsep ऑपरेटिंग सिस्टमद्वारे वापरलेला पाथ सेपरेटर पुनर्प्राप्त करते, सामान्यत: Windows वर अर्धविराम (;).
os.access(exe, os.X_OK) पायथनमध्ये फाइल एक्झिक्युटेबल आहे का ते तपासते.

विंडोज कमांड लाइन स्क्रिप्ट समजून घेणे

प्रदान केलेल्या स्क्रिप्टमध्ये, प्रत्येक UNIX च्या कार्यक्षमतेची नक्कल करण्यासाठी डिझाइन केलेले आहे कमांड, ज्याचा वापर कमांडचा पूर्ण मार्ग शोधण्यासाठी केला जातो. पहिली स्क्रिप्ट विंडोज कमांड प्रॉम्प्टसाठी बॅच फाइल वापरते. ते सुरू होते पर्यावरणीय बदलांचे स्थानिकीकरण करण्यासाठी. स्क्रिप्ट नंतर कमांडचे नाव व्हेरिएबलवर सेट करते आणि ते रिकामे आहे का ते तपासते. द for %%i in ("%command%") do लूप मध्ये सूचीबद्ध केलेल्या डिरेक्टरीद्वारे पुनरावृत्ती होते पर्यावरण परिवर्तनीय. या लूपमध्ये, द लूपच्या वर्तमान निर्देशिकेत एक्झिक्युटेबल फाइल अस्तित्वात आहे का ते तपासते. आढळल्यास, ते मार्ग आउटपुट करते आणि बाहेर पडते.

पॉवरशेलमध्ये लिहिलेली दुसरी स्क्रिप्ट, यासह पॅरामीटर्स परिभाषित करून सुरू होते . स्क्रिप्ट कमांडचे नाव पुनर्प्राप्त करते आणि विभाजित करते वापरून वैयक्तिक डिरेक्टरीमध्ये पर्यावरण व्हेरिएबल . द कमांड संभाव्य एक्झिक्युटेबल पथ तयार करण्यासाठी कमांड नावासह प्रत्येक डिरेक्टरी एकत्र करते. ते नंतर वापरते या मार्गांचे अस्तित्व तपासण्यासाठी. एक्झिक्युटेबल आढळल्यास, ते मार्ग आउटपुट करते आणि बाहेर पडते. पायथनमध्ये लिहिलेली तिसरी स्क्रिप्ट फंक्शनची व्याख्या करते मध्ये सूचीबद्ध केलेल्या निर्देशिकांमध्ये कमांड शोधण्यासाठी पर्यावरण परिवर्तनीय. ते वापरते os.pathsep प्रणालीचा मार्ग विभाजक मिळविण्यासाठी आणि अंमलबजावणीसाठी तपासण्यासाठी. ही स्क्रिप्ट कमांड-लाइन आर्ग्युमेंटसह चालविली जाते ज्यात कमांडचे नाव निर्दिष्ट केले जाते आणि कमांड सापडल्यास ती पूर्ण पथ मुद्रित करते.

विंडोजमध्ये कमांडचा पूर्ण मार्ग निश्चित करणे

विंडोज कमांड प्रॉम्प्ट वापरणे

@echo off
setlocal
set "command=%1"
if "%command%"=="" (
  echo Usage: %~n0 command_name
  exit /b 1
)
for %%i in ("%command%") do (
  for %%j in (".;%PATH:;=;.;%;") do (
    if exist "%%j\%%~i.exe" (
      echo %%j\%%~i.exe
      exit /b 0
    )
  )
)
echo %command% not found
endlocal

PowerShell मध्ये कमांड पथ शोधणे

पॉवरशेल स्क्रिप्ट वापरणे

पायथनसह कमांड स्थाने शोधत आहे

पायथन स्क्रिप्ट वापरणे

import os
import sys
def which(command):
    path = os.getenv('PATH')
    for dir in path.split(os.pathsep):
        exe = os.path.join(dir, command)
        if os.path.isfile(exe) and os.access(exe, os.X_OK):
            return exe
    return None
if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python script.py command_name")
        sys.exit(1)
    command = sys.argv[1]
    path = which(command)
    if path:
        print(path)
    else:
        print(f"{command} not found")

विंडोजमध्ये प्रगत पथ व्यवस्थापन तंत्र

आदेशाचा संपूर्ण मार्ग शोधण्यापलीकडे, व्यवस्थापित करणे संघर्ष टाळण्यासाठी आणि स्क्रिप्ट्सची सुरळीत अंमलबजावणी सुनिश्चित करण्यासाठी पर्यावरणीय व्हेरिएबल महत्त्वपूर्ण आहे. विंडोजमध्ये, एडिट करण्यासाठी सिस्टम प्रॉपर्टीज इंटरफेस वापरू शकतो व्हेरिएबल, परंतु वारंवार बदलांसाठी हे त्रासदायक असू शकते. त्याऐवजी, वापरून कमांड प्रॉम्प्ट किंवा पॉवरशेलमधील कमांड हे व्हेरिएबल्स व्यवस्थापित करण्यासाठी अधिक कार्यक्षम मार्ग प्रदान करू शकते. द १७ कमांड वापरकर्त्यांना पर्यावरण व्हेरिएबल्स सतत सेट करण्यास अनुमती देते, जे स्क्रिप्टसाठी उपयुक्त आहे ज्यांना विशिष्ट साधने किंवा अनुप्रयोगांना प्राधान्य देणे आवश्यक आहे. .

आणखी एक उपयुक्त साधन आहे कमांड, जी अंगभूत विंडोज युटिलिटी आहे जी UNIX प्रमाणेच वागते आज्ञा द कमांड शोध निकषांशी जुळणाऱ्या एक्झिक्युटेबल फाइल्सचे मार्ग शोधू आणि प्रदर्शित करू शकते. उदाहरणार्थ, धावणे where python कमांड प्रॉम्प्ट मध्ये पायथन एक्झिक्युटेबलच्या सर्व स्थानांची यादी करेल . जेव्हा एखाद्या साधनाच्या एकाधिक आवृत्त्या स्थापित केल्या जातात तेव्हा संघर्ष ओळखण्यासाठी आणि निराकरण करण्यासाठी हे विशेषतः उपयुक्त ठरू शकते. चा वापर एकत्र करून आणि , वापरकर्ते त्यांचे वातावरण अधिक चांगल्या प्रकारे व्यवस्थापित करू शकतात आणि आज्ञांच्या योग्य आवृत्त्या कार्यान्वित झाल्याची खात्री करू शकतात.

कमांड पथ समस्यांबद्दल वारंवार विचारले जाणारे प्रश्न

  1. काय आहे विंडोज मध्ये कमांड?
  2. द विंडोजमधील कमांड शोध निकषांशी जुळणाऱ्या एक्झिक्युटेबल फाइल्सचे मार्ग शोधते आणि प्रदर्शित करते.
  3. मी कसे संपादित करू पर्यावरण परिवर्तनशील?
  4. आपण संपादित करू शकता सिस्टम प्रॉपर्टीज इंटरफेसद्वारे किंवा वापरून व्हेरिएबल कमांड प्रॉम्प्ट किंवा पॉवरशेल मधील कमांड.
  5. कमांडचा मार्ग शोधण्यासाठी मी पॉवरशेल वापरू शकतो का?
  6. होय, पॉवरशेलचा वापर स्क्रिप्टचा वापर करून कमांडचा मार्ग शोधण्यासाठी केला जाऊ शकतो जो निर्देशिकेद्वारे पुनरावृत्ती करतो. पर्यावरण परिवर्तनीय.
  7. यांच्यात काय फरक आहे आणि कमांड प्रॉम्प्टमध्ये?
  8. द कमांड केवळ चालू सत्रासाठी पर्यावरण व्हेरिएबल्स सेट करते, तर सत्रांमध्ये त्यांना सतत सेट करते.
  9. पायथनमध्ये फाइल एक्झिक्युटेबल आहे की नाही हे मी कसे तपासू शकतो?
  10. पायथनमध्ये फाइल एक्झिक्युटेबल आहे का ते तुम्ही तपासू शकता .
  11. काय Python मध्ये करू?
  12. द attribute ऑपरेटिंग सिस्टमद्वारे वापरलेला पाथ सेपरेटर प्रदान करते, जो Windows वर अर्धविराम (;) आहे.

संघर्ष टाळण्यासाठी आणि योग्य स्क्रिप्टची अंमलबजावणी सुनिश्चित करण्यासाठी Windows कमांड लाइनवर कमांड पथ प्रभावीपणे व्यवस्थापित करणे आणि शोधणे महत्वाचे आहे. बॅच फाइल्स, पॉवरशेल स्क्रिप्ट्स आणि पायथनचा वापर करून, वापरकर्ते UNIX 'कोणत्या' कमांडच्या कार्यक्षमतेची प्रतिकृती बनवू शकतात. याव्यतिरिक्त, व्हेअर कमांड आणि PATH व्हेरिएबल व्यवस्थापित करणे यासारख्या साधनांचा लाभ घेणे ही प्रक्रिया अधिक सुव्यवस्थित करू शकते. ही तंत्रे स्वच्छ आणि कार्यक्षम विकास वातावरण राखण्यासाठी मजबूत उपाय प्रदान करतात, वापरकर्त्यांना मार्ग-संबंधित समस्या त्वरित ओळखण्यात आणि त्यांचे निराकरण करण्यात मदत करतात.