W katalogu domowym mam katalog, w którym umieszczam oprogramowanie wiersza polecenia (CMD_Software). Umieszczam każde oprogramowanie we własnym katalogu w CMD_Software, aby uniknąć bałaganu.
Chciałbym wprowadzić pojedynczy wpis do mojej zmiennej PATH, który pozwoli na dostęp do CMD_Software i wszystkich zawartych w nim katalogów z wiersza poleceń.
Próbowałem, C:\Users\myuser\CMD_Software\*
ale nic to nie dało. W tym momencie zabrakło mi pomysłów.
Pamiętaj, że nie próbuję ustawić nowej ścieżki w terminalu, próbuję ustawić nową ścieżkę w „Zmiennych środowiskowych” dostępnych na karcie „Zaawansowane” we Właściwościach systemu.
windows
windows-8
command-line
environment-variables
Landon Brainard
źródło
źródło
Odpowiedzi:
Zmienna PATH nie obsługuje symboli wieloznacznych ani rekurencji. To jest z założenia.
Istnieją dwa możliwe obejścia, których użyłem czasami:
Utwórz katalog z prostymi plikami wsadowymi i dodaj ten katalog do ŚCIEŻKI. Każdy plik wsadowy może uruchomić żądany program, na przykład:
Pierwszy wiersz jest komentarzem, drugi zaczyna się od,
@
aby uniknąć wyświetlania uruchamianego polecenia, i%*
służy do przekazywania argumentów wiersza polecenia do EXE.Dodaj aliasy do CMD.EXE:
Zasadniczo przekłada się to
CMD_Software
w wierszu polecenia na wszystko po znaku równości.$*
Otrzymuje z dostarczonym argumentów.Wolę drugie podejście, ponieważ możesz pogrupować wszystkie aliasy w jednym pliku (zobacz przełącznik „/ MACROFILE” w DOSKEY /?) I włączyć automatyczne uruchamianie za każdym razem, gdy interpreter poleceń zacznie korzystać z ustawienia rejestru (zobacz klucz „AutoRun” w CMD /?).
Wadą drugiej metody jest to, że aliasy działają tylko na początku wiersza poleceń. Może to stanowić problem, jeśli chcesz połączyć polecenia. Na przykład
CLS & CMD_Software
nie będzie działać, chyba że umieścisz alias w osobnym wierszu za pomocą nawiasów:Ilekroć staje się to problemem, wracam do podejścia do pliku wsadowego.
źródło
Właśnie tego używam do rozwiązania problemu. Skopiuj poniższy skrypt i zapisz go
FIXPATH.BAT
w folderze dodanym doPATH
zmiennej środowiskowej. Na przykład:Teraz, gdy chcesz uruchomić program z podfolderu, powiedz ...
Uruchom
fixpath
najpierw, a następnie wpisz polecenie (np.grep
Lubexiftool
) w następujący sposób:FIXPATH.BAT
Dzięki odpowiedzi @ VonC
źródło
Umieść podkatalog „programlinks \” w ... ... CMD_Software (lub gdziekolwiek, właściwie) i wypełnij go symbolicznymi linkami lub dowiązaniami twardymi do każdego pliku wykonywalnego, do którego chcesz uzyskać dostęp. Wtedy wystarczy pojedynczy wpis w PATH dla ... \ programlinks.
źródło
Jeśli pomysł Cię nie zniechęca, możesz skopiować narzędzia wiersza polecenia do katalogu Windows \ System32. Następnie możesz je uruchomić z dowolnego katalogu, tak jak ping lub ipconfig.
edytuj
Po trochę majstrowania, JEST to możliwe. Musisz tylko użyć średników, aby oddzielić swoje katalogi. Załóżmy, że masz program w „folderze 1” i „folderze 2”. Napisz swoją ścieżkę w ten sposób:
Następnie możesz wywołać program w dowolnym katalogu bezpośrednio z wiersza poleceń. AFAIK nie ma innego sposobu na zrobienie tego za pomocą pojedynczej linii.
Informacje dodatkowe: http://en.wikipedia.org/wiki/PATH_(variable)
źródło
program.bat
ponieważ%PATH%\program.bat
jest mniej więcej przeciwieństwem tego, do czego przeznaczona jest PATH.