Używając interfejsu wiersza polecenia systemu Windows (cmd), w jaki sposób można zlokalizować plik, który zna część nazwy? Na przykład każda stacja robocza systemu Windows instaluje javac w innym miejscu, jak można go znaleźć w interfejsie CLI systemu Windows (cmd)?
Googling Widzę tylko wzmiankę o korzystaniu z GUI Eksploratora Windows (menedżera plików) lub pobieraniu darmowej aplikacji. Czy system Windows naprawdę nie ma wbudowanego polecenia lokalizacji? Czy mają to wersje serwerowe? Ja nie chce zainstalować cygwin lub cokolwiek innego, nie są one zazwyczaj moje maszyny.
windows
command-line
search
locate
dotancohen
źródło
źródło
javac
powinien zwykle znajdować się w tym samym miejscu ...locate
iupdatedb
--per stackoverflow.com/questions/36841241/…Odpowiedzi:
Powinieneś być w stanie zrobić to, co musisz zrobić z
dir
:Zamień [nazwa pliku] na nazwę pliku, której szukasz, powinieneś być w stanie używać symboli wieloznacznych. / s sprawia, że przeszukuje podkatalogi, więc jeśli zajdzie taka potrzeba, możesz uruchomić w katalogu głównym C: i sprawić, by sprawdził cały dysk.
źródło
javac
jest zainstalowanyC:\WINDOWS
...Nikt nie mówi o poleceniu „gdzie”? przeszukuje plik wykonywalny w PATH bieżącego środowiska.
źródło
Windos ma najprostszą odpowiedź. Ale jeśli lubisz wiersz poleceń, możesz także przyjrzeć się PowerShell. Aby wykonać ten sam typ wyszukiwania, którego użyjesz
Ma to tę zaletę, że można ją przepompować do poręcznej instrukcji foreach i uruchomić proces w stosunku do wyników wyszukiwania.
źródło
gci
lubls
.cmd
,PowerShell
możesz użyć „Tab”, aby zobaczyć sugestie, jak w Linuksie. Więc nie ma tak wielu do pisania. I w moim przypadkuls
PowerShell nie działa.Po prostu mam program do lokalizowania dla systemu Windows . Wystarczy postępować zgodnie z instrukcjami dotyczącymi odczytu i skopiować pliki .dll i .exe do systemu32.
Alternatywą jest dodanie ścieżki programu do zmiennej środowiskowej PATH.
Pomysł polega na znalezieniu lokalizacji w systemie Windows, jeśli szukasz czegoś takiego jak „zlokalizuj”. :)
źródło
locate
jest na moim komputerze z Win7. Skarży się na to, że baza danych ma 435 dni, kiedy instalacja nie ma więcej niż 3 miesiące. Iupdatedb
nie jest wliczony w cenę.Pytanie jest nieco dwuznaczne.
Chcesz zlokalizować plik (podany w treści OP), ale chcesz także polecenie / aplikację typu „zlokalizuj” (podaną w tytule). Jest jedna subtelna uwaga z ogromnymi implikacjami. Możesz zlokalizować za pomocą dwóch różnych metod:
Przeszukiwanie docelowej struktury drzewa bezpośrednio przy każdym wyszukiwaniu (powoli).
Najpierw utworzenie bazy danych struktury drzewa docelowego (może być czasochłonne), a następnie zlokalizowanie poprzez przeszukiwanie bazy danych (bardzo szybko). Baza danych musi być okresowo aktualizowana, aby uzyskać dobre wyniki wyszukiwania. Zobacz http://en.wikipedia.org/wiki/Locate_%28Unix%29 .
Unix
locate
jest „typu 2”, ale zgodnie z treścią twojego OP, będziesz w porządku z dowolną z dwóch metod. Ponadto pytasz konkretnie o opcje CLI.Podaję poniżej niektóre opcje i określam, czy są to CLI / GUI, wpisz 1/2, i dodaję kilka komentarzy.
http://locate32.cogit.net/ (wskazane już przez Johna T, a następnie przez Cheeku ). GUI, typ 2. Istnieje wersja przenośna. Wyjątkowa łatwość użycia i konfigurowalność. Bardzo podobny do Unixa
locate
(którego bardzo lubiłem).Uwaga : Przyzwyczajony do tego, że Unix
Updatedb
dość długo aktualizuje bazę danych (oczywiście zależy to od wielkości skanowanego drzewa), uważam, że jestlocate32
bardzo szybki. Nie wiem, jak można to tak bardzo poprawić.http://sourceforge.net/projects/winlocate/ CLI, typ 2.
dir [nazwa pliku] / s , rozwiązanie Windos . CLI, typ 1.
gci ... , rozwiązanie OldWolf . CLI, typ 1.
http://gnuwin32.sourceforge.net/packages/findutils.htm Interfejs CLI, typ 2.
Wszystko GUI, wpisz?
źródło
Utworzyłem port PowerShell do lokalizowania i aktualizacjib. Używa SQLite jako backendu i ma automatyczny instalator. Właśnie
lokalizacje zajmują około 300ms / zapytanie.
Następnie
i jesteś gotowy.
https://gallery.technet.microsoft.com/scriptcenter/Invoke-Locate-PowerShell-0aa2673a
źródło
Nie trzeba instalować ręcznie. Zobacz http://chocolatey.org
Zrestartuj środowisko powłoki
źródło
Wiem, że odpowiedziano na to dawno temu, ale to jest mój skrypt do symulacji funkcji lokalizowania używanej w unix / linux
Zapisz to jako locate.bat i umieść w System32 LUB uruchom z katalogu, w którym jest przechowywany. Pobiera jeden parametr, taki jak „cmd> locate javac.exe”
Przełącznik zlokalizuj / c (jako drugi parametr policzy liczbę wystąpień) i zlokalizuj /? wyświetli tekst pomocy
EDYCJA: (Zaktualizowany skrypt, bardziej zorganizowany i może obsługiwać szerszą gamę sytuacji, takich jak dopuszczenie dowolnego wyszukiwanego hasła, nie tylko nazwy pliku)
źródło
Dla przyszłych historyków Windows: zostaliśmy pobłogosławieni Everything Search . Obraz dmenu + find + mlocate zwinięty w ciasną, ładną, małą usługę Windows z opcjami cli. Z wyjątkiem tego, że aktualizuje indeks w czasie rzeczywistym . Nic w Linuksie się nie zbliża. Będzie to jeden z nielicznych razy, kiedy powiesz: „rany, chciałbym, żeby to cholerne jądro było trochę bardziej mikroprocesorem”
źródło
Krótka odpowiedź jest taka, że nie ma dokładnego odpowiednika w systemie Windows . Obejściem tego problemu jest użycie polecenia dir . Jest to polecenie listy katalogów, które obsługuje znaki specjalne i może być używane zgodnie ze wskazaną w przyjętej odpowiedzi.
Polecenie Locate w wielu systemach uniksowych jest wyszukiwaniem opartym na indeksie. Działa w połączeniu z poleceniem Updatedb, które indeksuje systemy plików. Ponieważ jest to wyszukiwanie oparte na indeksie, jest zwykle znacznie szybsze niż polecenia tekstowe, takie jak dir i find w systemie Unix, szczególnie przy przeszukiwaniu głębokich hierarchii katalogów.
źródło
where
jest dokładnie równoważny.Nie znam żadnej metody CLI, aby to zrobić w systemie Windows. Należy pamiętać, że interfejs wiersza polecenia systemu Windows został porzucony przez zwykłych użytkowników, dlatego oferuje ogólnie mniej dojrzały zestaw narzędzi. Najlepszym rozwiązaniem może być użycie GNU
find
w systemie Windows, który można uzyskać z GnuWin32 . Jeśli tworzysz skrypt, musisz po prostu dołączyćfind.exe
i jego zależności od skryptu (nie martw się, nie jest zbyt duży).źródło