2009-10-31 16 views

Odpowiedz

11

Zobacz command search sequence Microsoft Technet

ścieżka i PATHEXT zmienne środowiskowe każda stanowią element sekwencji wyszukiwania: ścieżka jest zamawiane lista katalogów "gdzie" do wyświetlenia, a PATHEXT jest uporządkowaną listą rozszerzeń plików ("co") do wyszukiwania (w przypadku, gdy rozszerzenie nie jest jawnie podane w wierszu poleceń). Jednak przed użyciem PATH przeszukuje się bieżący katalog.

zmienne

PATHEXT domyślnie ".COM; .EXE; .bat; cmd"

+0

Ja po prostu wywołaj gvim z okna dialogowego Uruchom i bez względu na to, do czego ustawiona jest opcja PATHEXT, działa tylko gvim.exe; nawet jeśli powiem, gvim.bat w oknie dialogowym uruchamiania. – Jeenu

+1

@Jeenu, to raczej dziwne. Prawdopodobnym wytłumaczeniem jest jednak to, że inna instancja gvim (lub odwołująca się do niego nietoperza) znajduje się przed położeniem PATH, gdzie tego oczekujesz. Przejrzyj ścieżkę ręcznie, tak jak zrobi to konsola. (lub innym sposobem udowodnienia, że ​​to jest tymczasowa zmiana nazwy pliku exe w katalogu, który według ciebie pochodzi, sprawdź, czy wywołanie polecenia nie zawiedzie, nie znajdując przykładu. – mjv

+0

Dzięki za * "w przypadku, gdy rozszerzenie nie jest jawnie podane w wierszu poleceń "* uwaga, dlatego komenda' python3.5' nie może działać z PATH w oknach ... – dedek

2

wierzę, że idzie przez% PATHEXT% i próbuje każdego z tych

7

Podsumowując z linku Microsoft Technet dostarczonych przez MJV:

Windows przejść przez katalogów w ścieżce od lewej w prawo (normalna kolejność list). W każdym z nich próbuje zlokalizować plik z każdym PATHEXT również od lewej do prawej, przed przejściem do następnego wpisu PATH. Pierwszy znaleziony plik wygrywa.

Tak więc, w twoim przypadku musisz zmienić PATHEXT, aby .BAT pojawił się przed .EXE (lub zawsze znajdzie plik .exe, a nie .bat, który najprawdopodobniej chcesz zastąpić, jeśli znajduje się w tym samym katalogu), a także umieścić ścieżkę twojego "przesłonięcia" gvim.bat wcześniej (najwcześniej?) na liście PATH niż gdziekolwiek, gdzie mogłaby znaleźć gvim. * (ponieważ próbuje każdego PATHEXT w każdym przed pójściem w dół PATH)