मैं Windows के संस्करण के लिए Git के साथ mkdir को ओवरराइड क्यों नहीं कर सकता?


1

मैंने जाँच के लिए "देशी कमांडों को अधिलेखित" विकल्प के साथ विंडोज के लिए Git स्थापित किया है। मैंने अपने पेट की जाँच की है:

C:\Users\Domenic>echo %PATH%
C:\Program Files\Git\usr\bin;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Windows\system32;C:\Windows;C:\python2;C:\python2\Scripts;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\GitExtensions\;C:\Program Files\LLVM\bin;C:\depot_tools;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Ruby21-x64\bin;C:\ProgramData\nodist\bin;C:\ruby200\bin;C:\Chocolatey\bin;C:\Program Files\kdiff3;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Program Files\Docker Toolbox;C:\Users\Domenic\AppData\Roaming\npm;C:\Users\Domenic\Dropbox\PATH

(यदि आप इतना स्क्रॉल नहीं करना चाहते हैं, C:\Program Files\Git\usr\binतो पहले ध्यान दें )

मैंने इसके साथ जाँच की है where:

C:\Users\Domenic>where mkdir
C:\Program Files\Git\usr\bin\mkdir.exe

और जब मैं इसे सीधे चलाता हूं, तो यह बहुत अच्छा काम करता है:

C:\Users\Domenic>"C:\Program Files\Git\usr\bin\mkdir.exe" --help
Usage: /usr/bin/mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
(... etc ...)

हालाँकि, जब मैं mkdirकमांड लाइन से चलने की कोशिश करता हूं , तो यह हमेशा विंडोज के बिल्ट-इन-वन में चला जाता है:

C:\Users\Domenic>mkdir --help
A subdirectory or file --help already exists.

C:\Users\Domenic>mkdir /?
Creates a directory.

MKDIR [drive:]path
(... etc ...)

मैं mkdir को ओवरराइड क्यों नहीं कर सकता?

विंडोज 10, विंडोज 2.7 के लिए गिट


superuser.com/questions/856582/… ऐसा ही लगता है, लेकिन यह स्पष्ट नहीं करता है कि
डोमिनिक

2
क्योंकि cmd रास्ते में बाहरी कमांड की खोज करने से पहले निर्मित कमांड की खोज करता है। साथ आदेश आसपास "सेना रास्ते में देखने के लिए और आंतरिक आदेशों की अनदेखी करने के cmd
DavidPostill

1
देखें कि विंडोज कमांड इंटरप्रेटर (CMD.EXE) पार्स स्क्रिप्ट कैसे करता है? cmd पार्सिंग कैसे काम करता है पर बहुत अधिक के लिए।
DavidPostill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.