Powiedzmy, że mam program X.EXE
zainstalowany w folderze c:\abcd\happy\
w systemie. Folder znajduje się w ścieżce systemowej. Załóżmy teraz, że w systemie jest inny program, który również nazywa się X.EXE, ale jest zainstalowany w folderze c:\windows\
.
Czy można szybko dowiedzieć się z wiersza poleceń, że jeśli wpiszę, X.EXE
która z nich X.EXE
zostanie uruchomiona? (ale bez konieczności szukania w katalogu lub przeglądania szczegółów procesu w Menedżerze zadań).
Może jakieś wbudowane polecenie lub jakiś program, który może zrobić coś takiego? :
detect_program_path X.EXE
windows
command-line
path
Zabba
źródło
źródło
Odpowiedzi:
Użyj
where
polecenia. Pierwszy wynik na liście to ten, który zostanie wykonany.Zgodnie z tym wpisem na blogu ,
where.exe
jest dołączony do systemu Windows Server 2003 i nowszych, więc powinien działać tylko z Vista, Win 7 i in.W systemie Linux odpowiednikiem jest
which
polecenie, npwhich ssh
.źródło
listdlls -d foo.dll
aby zobaczyć wszystkie procesy, które mają załadowany moduł, i pełną ścieżkę do załadowanego modułu. Alternatywnie możesz po prostu wyszukać nazwę pliku w systemie Windows.Oto mały skrypt cmd, który możesz skopiować i wkleić do pliku o nazwie podobnej do
where.cmd
:źródło
Jak wspomniany w komentarzu wątek ,
get-command
w PowerShell również można to rozwiązać. Na przykład możesz wpisać,get-command npm
a wynik jest następujący:źródło
(get-command npm).Source
odpowie tylko ścieżką do npm (na przykład) zamiast całej tabeli wszystkich właściwości.