Czy mogę przeprowadzić „jednorazowe” wyszukiwanie zawartości pliku w systemie Windows Server 2008 bez dodawania folderu do indeksu?

9

Czy mogę wyszukiwać pliki zawierające określony ciąg w folderze, jeśli ten folder nie znajduje się w indeksie wyszukiwania?

Powiedzmy, że folderu „textFiles” nie ma w indeksie. Przechodzę do tego folderu w Eksploratorze Windows. W polu wyszukiwania wpisuję „.ini”. Chcę zobaczyć listę wyników zawierającą tylko „b.txt”

FOLDER C:\textFiles\

FILE  a.php  
CONTENT once twice thrice mice moose monkey

FILE b.txt
CONTENT mingle muddle middle.ini banana beer

FILE c.spo
CONTENT sellotape stapler phone book

Nie mam uprawnień do dodawania folderów do indeksu systemu Windows i nie mam uprawnień do instalowania ani uruchamiania żadnych plików wykonywalnych, które nie zostały dostarczone z serwerem lub zatwierdzonymi aplikacjami.

W razie potrzeby byłbym zadowolony z natywnego rozwiązania wiersza poleceń systemu Windows.

SOL-.
źródło

Odpowiedzi:

7

Możesz to zrobić za pomocą narzędzia wiersza polecenia findstr.exe dostarczonego przez firmę Microsoft.

  1. Otwórz wiersz polecenia i przejdź do c: \ textfiles

  2. Uruchom polecenie findstr /L /M /C:"ini" *.*

    Uwaga: możesz dodać / S, aby przeszukać wszystkie podkatalogi

Pełne informacje na temat FINDSTR

  FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See "color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

For full information on FINDSTR regular expressions refer to the online Command
Reference.
Jeremy W.
źródło
Widzę, co tam zrobiłeś ... : D
Tamara Wijsman,
Dzięki! Sam powinienem o tym pomyśleć. Nagroda przyznana
G-.
Co ja zrobiłem? ..
G-.
1
@ G- .: To odnosiło się do Jeremy'ego, w jaki sposób zastosował podejście „inteligentne @ $ #”, gdy zaproponowaliśmy mniej wykonalne rozwiązania tego problemu. Zawsze miło jest mieć przy sobie trzecią osobę i zabierać kości (nagrody) innym, którzy walczą ...
Tamara Wijsman
1

Najłatwiejszym rozwiązaniem jest chwilowe wyłączenie wyszukiwania systemu Windows , jeśli masz uprawnienia:

  1. net stop wsearch

  2. Wykonaj wyszukiwanie w folderze w Eksploratorze Windows, rozpocznie wyszukiwanie bez indeksu.

  3. net start wsearch

Chociaż działa to w przypadku małych folderów, możesz napotkać problemy z większymi folderami.

Alternatywa dla przeszukiwania zawartości pliku

Windows Grep opiera się na grepidei linux , dostarczając GUI, który pozwala zobaczyć pasujące linie; pozwala to na szybkie przeglądanie plików w poszukiwaniu różnych zdarzeń i ich kontekstu:

Zapewnia kilka opcji wyszukiwania, więc pasuje również do większych lub bardziej złożonych folderów:

Ma również łatwego kreatora, jeśli nie zawracasz sobie głowy wyświetlaniem wszystkich ustawień, i możesz skonfigurować sposób wyświetlania wyników tekstowych (numery linii, pokaż część / całą linię, stałą czcionkę, ...)

Alternatywa dla wyszukiwania nazw plików

Wyszukiwanie Wszystko jest jedną z najmniejszych wyszukiwarek dla systemu Windows, a zatem jest łatwe do pobrania i uruchomienia, ma bardzo przejrzysty i prosty interfejs użytkownika, który umożliwia bardzo szybkie indeksowanie plików i wyszukiwanie wśród nich. Ma minimalne zużycie zasobów i aktualizuje się w czasie rzeczywistym, jeśli pozostajesz otwarty, więc nawet pasuje jako zamiennik Windows Search, jeśli chcesz ...

Mam w sumie 904,108 plików i folderów, co jest dość dużo w porównaniu ze zwykłym użytkownikiem, a kiedy wpisuję coś takiego Super User, wyświetla to natychmiast . Indeksowanie też nie trwa długo; więc wystarczy otworzyć go i poczekać kilka sekund, aby natychmiast wyszukać na wyciągnięcie ręki.

Na przykład możesz pokazać wszystkie pliki wykonywalne w folderze takim jak ten: *.exe "C:\Program Files"

Tamara Wijsman
źródło
Mimo że funkcja Search Everything jest cudowna, działa, ale nie wykonuje wyszukiwania tekstu zgodnie z wymaganiami plakatu. Ma również wbudowany limit ponad 1 miliona na liczbę plików na dysku, które może obsłużyć, poza którymi staje się bezużyteczny, a także, jeśli nie działa w systemie Windows, zainicjowanie bazy danych wyszukiwania może potrwać dość długo. W moim kontakcie z deweloperem w sprawie tych problemów wskazał, że rozwój został zatrzymany, ale nie zamierza udostępnić go jako oprogramowania typu open source.
harrymc
Uruchomiłem Search Everything na naszym 64-bitowym serwerze plików i to nadal działa, gdzie jest dokładny limit, o którym mówisz? Windows Grep wydaje się być wybawcą? Czy mówimy o kompletności ponad przypadkowymi założeniami? Wydaje ci się, że brak kompletności prowadzi do wyższej jakości? Co powiesz na to? Ta gra, w którą grasz? Nudne? Jakość> Ilość .
Tamara Wijsman
Może powinieneś także powiedzieć plakatowi, dlaczego używanie grep do szukania „.ini” nie jest dobrym pomysłem.
harrymc
@harrymc: Ponieważ szukamy tutaj treści, cennych treści ...
Tamara Wijsman,
2
Dziękuję za radę. Jednak, jak wspomniano, nie mogę zainstalować dodatkowych plików wykonywalnych na serwerze. „wsearch” nie wydaje się być prawidłową usługą w mojej instalacji.
G-.