Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 28.03.2008, 13:28 Titel: [Windows] Kommandozeilen-Suchtools |
|
|
Hallo,
mich hat es neuerdings einfach genervt wenn ich ewig auf der Kommandozeile rumgehangelt bin, auf der Suche nach einer Datei. Und ich dann zwischenzeitlich wieder die langsame Windows-Suche bemühen musste.
Zudem wollte ich mich sowieso mit Boost::Filesystem vertraut machen, also hab ich mich da ein wenig an updatedb und locate auf Linux orientiert, mit denen man auf der Kommandozeile suchen kann. Für Windows kannte ich sowas bisher noch nicht. Das und besagter Lerneffekt haben mich dann mal was kleines basteln lassen.
Zur Verwendung:
Zuvor muss mit updatedb eine Indexdatei mit den vorhandenen Dateien auf den Laufwerken erstellt werden. Als Parameter werden die zu durchsuchenden Laufwerke festgelegt. Können beliebig viele sein.
z.B.
Wird eine Datei oder mehrere Dateien "vermisst", lässt sich mit einem Aufruf von locate und den Dateien als Parameter der gewünschte Pfad anzeigen - vorausgesetzt, die Datei existiert und die Indexdatei ist aktuell genug. Dabei genügt auch ein Bruchteil des Dateinamens.
z.B.
Code: |
locate einbrief.doc spiel.bas
|
Das ganze ist recht einfach gestrickt; locate durchsucht nur die Indexdatei nach dem angegebenen String.
Dadurch ergeben sich ein paar Nachteile (die zumindest für meinen Gebrauch nicht ins Gewicht fallen):
- Wildcards sind nicht möglich
- Enthält die Pfadangabe den gesuchten String, wird diese auch ausgegeben (seht's als Vor- oder Nachteil, wie ihr wollt)
Dateien mit Leerzeichen im Namen müssen von " umschlossen werden, um als einer erkannt zu werden. Sonst werden die einzelnen Wörter auch als einzelne Suchstrings erkannt.
z.B.
Code: |
locate "dies und das.txt"
|
Es empfiehlt sich, den Pfad zu den beiden Programmen in die PATH-Variable aufzunehmen, um von jedem Ort aus suchen zu können. Die beiden Programmdateien können in ein Verzeichnis kopiert werden, die Auftrennung erfolgte nur, da es zur Entwicklung 2 getrennte Einzelprogramme sind.
Das Aufnehmen in die PATH-Variable kann z.B. so geschehen: Rechtsklick auf Arbeitsplatz -> Eigenschaften -> Erweitert -> Umgebungsvariablen -> Benutzervariablen -> PATH auswählen -> Bearbeiten -> den Pfad zu den Programmen hinten anfügen, mit Semikolon abtrennen wie es auch schon im restlichen String gemacht wurde
Screenshots sind an dieser Stelle, denke ich mal, unnötig.
Veränderungen an der Registry oder Systemvariablen finden nicht statt.
Die Indexdatei wird im Anwendungsdaten-Ordner des Benutzers gespeichert, unter dessen Rechten die Anwendung zur Zeit läuft.
Wie gesagt, hatte das ganze für mich geschrieben, aber vllt. kanns ja jemand gebrauchen.
Miserabler Source ist im ZIP-Archiv enthalten. Lizenz siehe license.txt
Download (~258KB)
Viele Grüße,
Mao
/edit: Wer eine Version vor 14:10 Uhr heruntergeladen hat, hat noch eine mit Original-Bug. Gefixed. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|