Kann ich in Windows Server 2008 eine einmalige Suche nach Dateiinhalten durchführen, ohne den Ordner zum Index hinzuzufügen?

9

Kann ich nach Dateien suchen, die eine bestimmte Zeichenfolge in einem Ordner enthalten, wenn sich dieser Ordner nicht im Suchindex befindet?

Nehmen wir also an, der Ordner 'textFiles' befindet sich nicht im Index. Ich navigiere zu diesem Ordner im Windows Explorer. Ich gebe '.ini' in das Suchfeld ein. Ich möchte eine Ergebnisliste sehen, die nur 'b.txt' enthält.

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

Ich habe keine Berechtigung zum Hinzufügen von Ordnern zum Windows-Index und keine Berechtigung zum Installieren oder Ausführen von ausführbaren Dateien, die nicht mit dem Server oder genehmigten Anwendungen geliefert wurden.

Bei Bedarf würde ich mich über eine native Windows-Befehlszeilenlösung freuen.

G-.
quelle

Antworten:

7

Sie können dies mit dem von Microsoft bereitgestellten Befehlszeilentool findstr.exe tun.

  1. Öffnen Sie eine Eingabeaufforderung und navigieren Sie zu c: \ textfiles

  2. Führen Sie den Befehl aus findstr /L /M /C:"ini" *.*

    Hinweis: Sie können / S hinzufügen, um alle Unterverzeichnisse zu durchsuchen

Alle Details zu 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.
quelle
Ich sehe, was Sie dort getan haben ... : D
Tamara Wijsman
Vielen Dank! Hätte selbst daran denken sollen. Kopfgeld vergeben
G-.
Was habe ich getan? ..
G-.
1
@ G-.: Das bezog sich auf Jeremy, wie er einen "smart @ $ #" -Ansatz verwendete, während wir mit weniger praktikablen Lösungen dafür kamen. Es ist immer schön, wenn eine dritte Person vorbeikommt und den anderen, die kämpfen, den Knochen (Kopfgeld)
wegnimmt
1

Die einfachste Lösung besteht darin , die Windows-Suche vorübergehend zu deaktivieren , wenn Sie über Berechtigungen verfügen:

  1. net stop wsearch

  2. Führen Sie Ihre Suche im Ordner im Windows Explorer durch, es wird ohne Index gesucht.

  3. net start wsearch

Während dies für kleine Ordner funktioniert, können bei größeren Ordnern Probleme auftreten.

Eine Alternative zum Durchsuchen von Dateiinhalten

Windows Grep basiert auf der Linux- grepIdee, indem es eine grafische Benutzeroberfläche bereitstellt, mit der Sie übereinstimmende Zeilen anzeigen können. Auf diese Weise können Sie schnell in Dateien nach den verschiedenen Vorkommen und deren Kontext suchen:

Es bietet einige Suchoptionen und eignet sich daher auch für größere oder komplexere Ordner:

Es hat auch einen einfachen Assistenten, wenn Sie nicht alle Einstellungen sehen möchten, und Sie können konfigurieren, wie die Textergebnisse angezeigt werden (Zeilennummern, Teil- / ganze Zeile anzeigen, feste Schriftart, ...)

Eine Alternative zum Suchen von Dateinamen

Search Everything ist eine der kleinsten Suchmaschinen für Windows und daher einfach abzurufen und auszuführen. Es verfügt über eine sehr saubere und einfache Benutzeroberfläche, mit der Sie Dateien sehr schnell indizieren und zwischen ihnen suchen können. Es hat eine minimale Ressourcennutzung und wird in Echtzeit aktualisiert, wenn Sie es offen halten. Daher eignet es sich sogar als Ersatz für die Windows-Suche, wenn Sie ...

Ich habe insgesamt 904.108 Dateien und Ordner, was im Vergleich zum normalen Benutzer ziemlich viel ist, und wenn ich so etwas tippe Super User, wird das sofort angezeigt . Die Indizierung dauert auch nicht lange. Es geht also nur darum, es zu öffnen, einige Sekunden zu warten und sofort nach Ihren Fingerspitzen zu suchen.

Als Beispiel könnten Sie alle ausführbaren Dateien in einem Ordner wie dem folgenden anzeigen: *.exe "C:\Program Files"

Tamara Wijsman
quelle
Während Search Everything wunderbar ist, wenn es funktioniert, führt es keine Textsuche durch, wie vom Poster gefordert. Es gibt auch ein integriertes Limit von etwas mehr als 1 Million für die Anzahl der Dateien auf der Festplatte, die es verarbeiten kann, ab dem es unbrauchbar wird. Wenn es nicht unter Windows ausgeführt wird, kann die Initialisierung der Suchdatenbank ziemlich lange dauern. In meinem Kontakt mit dem Entwickler bezüglich dieser Probleme gab er an, dass die Entwicklung gestoppt wurde, er jedoch nicht beabsichtigt, sie Open Source zu machen.
Harrymc
Haben Sie Search Everything auf unserem 64-Bit-Dateiserver ausgeführt und das funktioniert immer noch. Wo liegt die genaue Grenze, über die Sie sprechen? Windows Grep scheint ein Retter zu sein? Sollen wir über Vollständigkeit über zufällige Annahmen sprechen? Sie scheinen zu glauben, dass eine Nichterfüllung zu einer höheren Qualität führt? Condider was vorbei? Das Medizinspiel, das Sie spielen wollen? Langweilig, was? Qualität> Quantität .
Tamara Wijsman
Vielleicht sollten Sie dem Poster auch sagen, warum es keine gute Idee ist, grep zu verwenden, um nach '.ini' zu suchen.
Harrymc
@harrymc: Weil wir hier nach Inhalten suchen, nach wertvollen Inhalten ...
Tamara Wijsman
2
Danke für deinen Rat. Wie bereits erwähnt, kann ich jedoch keine zusätzlichen ausführbaren Dateien auf dem Server installieren. "wsearch" scheint in meiner Installation kein gültiger Dienst zu sein.
G-.