Dateien suchen mit Windows

Kurz gesagt: es geht nicht. :-(

Zumindest nicht wenn man den Anspruch erhebt auch etwas finden zu wollen. ;-)

Die Langversion: Bei der Arbeit bin ich einfacher Benutzer. Kein Administrator. Zumindest nicht auf meinem Arbeitsplatzrechner, einem PC mit Windows XP. Das Ding hat mich schon eine Menge Nerven gekostet, aber das Heute schlägt dem Fass die Krone ins Gesicht.

Vor ein paar Jahren habe ich mich damit abfinden müssen dass ich mit dem Explorer nicht im Inhalt von Dateien suchen kann. Zumindest nicht in irgendwelchen dahergelaufenen Dateien. Ich hatte einen Verzeichnisbaum voll mit PHP-Sourcen, und ich wollte die Datei finden in der eine bestimmte Meldung ausgegeben wird. Ein Fall für grep -r "Meldung" * — auf jedem nicht-Windows zumindest.

Windows sucht — wenn ich mich recht erinnere — erstmal nur in indizierten Dateien. Nach längerer Suche hat mir ein automatisch übersetzter Artikel in der Knowledge Base etwas in der Art „schalt die Indizierung ab, dann funktioniert das auch mit Dateien deren Endung Windows nicht kennt“ gesagt. Einschliesslich einer Anleitung wo der erforderliche Haken versteckt ist. Bei mir war der Haken aber ausgegraut, ich schätze dass das ein fürsorglicher Administrator für mich erledigt hat. Ergo: suchen per Explorer habe ich mir abgewöhnt.

Stattdessen an der Kommandozeile findstr aufgerufen. Das geht zur Not sogar rekursiv, hat mir damals also den Weg zur gesuchten Datei gezeigt.

Heute hat mich aber auch findstr enttäuscht:

findstr findet nichts

findstr findet nichts

Wir sehen eine Textdatei mit einer Zeile Text. Mit findstr kann ich offenbar nicht nach einem Wort suchen. Ein Kollege empfiehlt find. OK, solange ich nicht nach Mustern suchen will klappt das offenbar. Aber was ist das? Wenn ich nach einzelnen Buchstaben suche findet auch findstr etwas! Allerdings mit komischen Zeichen dazwischen…

Sowohl type und find an der Kommandozeile, als auch Notepad und Wordpad können mir den Inhalt der Datei sauber anzeigen. Nur halt findstr nicht.

Aber die komischen Zeichen sind ein Hinweis: mit Vim (ohne den würde ich eingehen) finde ich heraus dass das Fileencoding dieser Datei utf-16le ist. Keine Ahnung wie es dazu gekommen ist, ich bin mir sicher dass ich die Datei mit Bordmitteln erstellt habe. Ursprünglich war das eine RDP-Datei, mit der ich direkt die Verbindung zu einem bestimmten Rechner starten kann.

Fazit: findstr ist auch keine Lösung. Solange ich nichts spezielles will (z. B. nach Mustern suchen. Oder rekursiv in Verzeichnissen. Oder in Datenströmen.) scheint find den Dienst zu tun.

In diesem Fall hat mir Vim das Encoding verraten. Unter Linux hätte es wahrscheinlich auch ein file getan (ungetestet). Wie finde ich eigentlich unter Windows das Encoding einer Textdatei heraus?

2 Kommentare

  1. Mal ein Tip aus dem Bauch heraus, ohne da was groß geprüft oder getestet zu haben: Schau dir mal die Portable Apps an (http://portableapps.com/apps). Der beinhaltet u. a. auch diverse File-Manager und Editoren die viel mehr nutzen mitbringen, als das M$ Bordwerkzeug. Nach einem kurzen Blick wären da z. B. der Cubic Explorer Portable (http://cubicreality.pp.fi/images/blog/CubicExplorer_C2BF/file-search.png), der Freecommander Portable (http://portableapps.com/apps/utilities/freecommander_portable) oder auch der Notepad++ als Editor (http://npp-community.tuxfamily.org/documentation/notepad-user-manual/searching/searching-files) die hätten dein Problem erschlagen können.
    Je nach dem wie fürsorglich (sprich restriktiv) dein Win-Admin ist, sollten die Portable Apps unter deinem Account laufen da nichts Installiert, sondern nur innerhalb eines lokalen Verzeichnisses ausgeführt wird.

  2. Naja, ein Cygwin macht schon vieles einfacher. Aber wenn man unterschrieben hat dass man da keine eigene Software einschleppt…
    Wie auch immer: ich wundere mich einfach nur wie manche Leute sich wirklich mit Windows zufrieden geben — und vor allem was fuer ‚Qualitaet‘ Microsoft sich da abzugeben traut. :-/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

;-) :-) :-D :-| :-/ :-( :-P more »