Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[Windows] Kommandozeilen-Suchtools

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.03.2008, 13:28    Titel: [Windows] Kommandozeilen-Suchtools Antworten mit Zitat

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. zwinkern

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.
Code:

updatedb c: e:

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. zwinkern Gefixed.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz