Przypomniałem sobie, że użyłem narzędzia o nazwie as, where
aby znaleźć lokalizacje dla dowolnych programów wykonywalnych takich jak ten w konsoli:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
Teraz nie mogę znaleźć tego narzędzia. Nie jesteś pewien, czy system Windows ma wbudowane narzędzie do wyszukiwania?
where
pracował dla mnie na Windows 7 EnterpriseOdpowiedzi:
Zgodnie z odpowiedzią StackOverflow na stronie Czy istnieje odpowiednik „które” w systemie Windows? ,
where.exe
robi to w systemie Windows 7 i Windows Server 2003 i nowszych wersjach:Przykład
Wynik:
źródło
where
jest domyślnym aliasem dlaWhere-Object
, więc zamiast tego musisz użyćwhere.exe
lubgcm
/Get-Command
Get-Command ping
(lub po prostugcm ping
), co da ci pełną ścieżkę wraz z kilkoma innymi informacjami.EDYCJA: Powinienem był dodać, jeśli nie możesz użyć polecenia GDZIE z wiersza polecenia, sprawdź swoją zmienną PATH. (Wystarczy użyć polecenia „path”). Upewnij się, że C: \ Windows \ System32 znajduje się na twojej ścieżce. Tam właśnie znajduje się „where.exe”.
GDZIE jest polecenie, którego szukasz! GDZIE jest jak skrzyżowanie wbudowanej powłoki „UNIX” powłoki „UNIX” z poleceniem „locate”, ponieważ działa zarówno dla plików wykonywalnych poleceń, jak i zwykłych plików.
Jest również nieco bardziej skomplikowany niż którykolwiek z tych dwóch, choć generalnie prosty
będzie działać.
Różni się od polecenia „locate” tym, że nie przegląda całego systemu plików. Zamiast tego domyślnym zachowaniem jest wyszukiwanie plików w dwóch lokalizacjach:
Tak więc każde polecenie, które można uruchomić bezpośrednio z wiersza polecenia bez określania katalogu, zostanie znalezione przez polecenie WHERE. (Ponieważ każde takie polecenie jest już na liście zmiennych PATH).
Jeśli chcesz wyszukiwać tylko w zmiennej ścieżki poleceń, możesz użyć:
Jeśli z drugiej strony chcesz znaleźć wszystkie kopie pliku w drzewie katalogów, możesz użyć:
Wreszcie WHERE znajdzie polecenia i wszelkie pliki z rozszerzeniem ze zmiennej PATHEXT bez uwzględnienia rozszerzenia. Wszystkie pozostałe pliki muszą być określone dokładnie lub za pomocą symboli wieloznacznych.
Weźmy na przykład pliki „dxdiag.exe” i „dxdiagn.dll”. Zwróć uwagę na następujące polecenie i jego dane wyjściowe:
Udało mu się zwrócić wszystkie wersje „dxdiag.exe”, ponieważ „.exe” jest jednym z rozszerzeń zmiennej PATHEXT. (Uwaga: „GDZIE dxdiag” również działałoby, ponieważ C: \ Windows \ System32 znajduje się w zmiennej PATH.)
z drugiej strony nie zwraca żadnego wyniku, ponieważ „.dll” nie znajduje się w PATHEXT.
W takim przypadku spójrz na wynik dodania symbolu wieloznacznego:
Z powodzeniem zwraca wszystkie wersje dxdiagn.dll.
Aby uzyskać więcej informacji, użyj „GDZIE /?”. Mam nadzieję że to pomoże!
źródło
where where
C:\Windows\System32\where.exe
:)użyj
dir
:cd \
część zmienia cię do katalogu głównego dysku, aby upewnić się rozpocznie wyszukiwanie na szczycie hierarchii.źródło
Zauważ, że niektóre rzeczy mogą się nieco różnić w PowerShell:
źródło
Frustrujące, że nie jest wbudowane jako proste polecenie.
Istnieje jednak kilka rozwiązań, z których jedno jest plikiem wsadowym .
Utwórz plik wsadowy (which.bat) w następujący sposób:
Przeszukuje katalog lokalny, pobiera parametr nazwy pliku z rozszerzeniem lub bez niego i zwraca pierwsze dopasowanie z bieżącego katalogu lub w ścieżce PATH.
Następnie uruchom go tak,
which cmd.exe
aby znaleźć cmd.exe, który uruchomi się po wpisaniucmd
.źródło
W systemie Windows można użyć bezpłatnej wyszukiwarki Everything, aby natychmiast wyszukać dowolny plik według pełnej lub częściowej nazwy (jeśli dysk twardy jest sformatowany w NTFS).
źródło
Jeśli chcesz, który z nich , projekt GnuWin32 ma kilka uniksowych narzędzi z indywidualnymi instalatorami.
źródło
W PowerShell
Możesz łatwo przekonwertować to na polecenie cmdlet.
Inny sposób osiągnięcia tego, jak sugerowano w edycji:
źródło
Jeśli potrzebujesz tylko ścieżki do jej uruchomienia, często lepiej jest użyć polecenia start. Na przykład możesz użyć polecenia „start chrome.exe”, aby uruchomić Chrom {e | ium}, niezależnie od tego, gdzie jest zainstalowany.
źródło
Heh, muszę tylko opublikować jeden plik wsadowy tego systemu Windows:
Badanie:
Niezupełnie jednowierszowy, jeśli zawijasz kod
setlocal enableextensions
iendlocal
, które są wymagane dla użytkowników, którzy nie mają domyślnie włączonych rozszerzeń.źródło