Skip to content

Latest commit

 

History

History
155 lines (114 loc) · 6.01 KB

File metadata and controls

155 lines (114 loc) · 6.01 KB

Everything3 PowerShell Wrapper

Ein leistungsstarker und benutzerfreundlicher PowerShell-Wrapper für die Everything Search Engine (Version 1.5+). Dieses Modul nutzt die Everything3_x64.dll aus dem Everything SDK, um eine extrem schnelle Dateisuche direkt aus der PowerShell-Konsole zu ermöglichen.

Getestet wurde es mit:

Inhaltsverzeichnis


Features

  • Schnelle Verbindung: Einfaches Verbinden und Trennen von der Everything-Instanz
  • Mächtige Suche: Unterstützung für komplexe Abfragen, Regex, Groß-/Kleinschreibung und mehr
  • Eigenschaftsabruf: Abrufen von Metadaten wie Größe, Erstellungsdatum und Attribute
  • Einfache Handhabung: Praktische Wrapper-Funktion Find-Files für alltägliche Suchen
  • Verbindungstest: Eine eingebaute Funktion zum Testen der Verbindung und zum Anzeigen von Diagnoseinformationen
  • VSCode-Kompatibilität: Automatische Behandlung von VSCode-spezifischen DLL-Loading-Problemen

Anforderungen

  • PowerShell 5.1 oder höher. Empfohlen wird PowerShell 7.5.2 oder höher
  • Everything v1.5a oder neuer muss installiert sein und laufen
  • Die Everything3_x64.dll (aus dem offiziellen Everything SDK) muss sich im selben Verzeichnis wie das Modul befinden

Quick Start

  1. Klonen Sie das Repository:

    git clone https://github.com/gitnol/PowerEverything3.git
  2. Importieren Sie das Modul in Ihre PowerShell-Sitzung:

    Import-Module .\Everything3-PowerShell-Wrapper.psd1 -Verbose
  3. Testen Sie die Verbindung:

    Test-EverythingConnection
  4. Dateien finden:

    Find-Files -Pattern "*.pdf" -MaxResults 10

Funktionen

Funktion Beschreibung
Find-Files Eine einfache Wrapper-Funktion für die schnelle Suche nach Dateien
Search-Everything Führt eine detaillierte Suche mit allen verfügbaren Optionen durch
Connect-Everything Stellt eine Verbindung zum Everything-Client her
Disconnect-Everything Trennt die Verbindung zum Everything-Client
Test-EverythingConnection Überprüft die Verbindung zur Everything-Instanz und zeigt Statusinformationen an

Anwendungsbeispiele

Einfache Suchen mit Find-Files

Suche nach PDF- und DOCX-Dateien:

Find-Files -Pattern "*" -Extensions @("pdf", "docx") -MaxResults 10

Suche nach Dateien mit Eigenschaften (Größe, Datum):

Find-Files -Pattern "invoice*" -IncludeProperties -MaxResults 5

Regex-Suche nach Bilddateien mit Datumsmuster:

Find-Files -Pattern "regex:^\d{4}-\d{2}-\d{2}.*\.(jpg|png)$" -Verbose -MaxResults 10
# oder
Find-Files -Pattern '^\d{4}-\d{2}-\d{2}.*\.(jpg|png)$' -Regex -Verbose -MaxResults 10

Erweiterte Suchen mit Search-Everything

Finde die 5 größten Dateien über 100 MB und sortiere sie nach Größe:

# Verbindung manuell aufbauen
$client = Connect-Everything

# Suche ausführen und nach Größe absteigend sortieren
Search-Everything -Client $client -Query "size:>100mb" -MaxResults 5 -Properties "Size" -SortBy @{Property = "Size"; Descending = $true}

# Verbindung wieder trennen
Disconnect-Everything -Client $client

Finde alle Dateien, die in den letzten 7 Tagen geändert wurden:

$client = Connect-Everything
Search-Everything -Client $client -Query "dm:last7days" -MaxResults 10 -Properties "DateModified"
Disconnect-Everything -Client $client

Finde leere Dateien:

Find-Files -Pattern "size:0" -MaxResults 20

VSCode-Besonderheiten

Das Modul enthält automatische Workarounds für VSCode-spezifische Probleme beim Laden nativer DLLs:

  • Automatisches DLL-Loading: Die Everything3_x64.dll wird über Kernel32::LoadLibrary() explizit geladen
  • PATH-Behandlung: Das Modul-Verzeichnis wird automatisch zum PATH hinzugefügt
  • Fehlerbehandlung: Robuste Behandlung von VSCode-spezifischen Parameter-Binding-Problemen

Diese Maßnahmen stellen sicher, dass das Modul sowohl in der normalen PowerShell-Konsole als auch in VSCode korrekt funktioniert.


Lizenz & Haftungsausschluss

MIT

Dieses Projekt wird ohne jegliche Gewährleistung zur Verfügung gestellt. Die Nutzung erfolgt auf eigene Verantwortung.

Dieses Projekt steht in keiner Verbindung zu VoidTools. Alle Markenzeichen gehören ihren jeweiligen Eigentümern. Dies ist ein reines Forschungs- und Entwicklungsprojekt.