.nfo-Dateien im Batch nach NICHT enthaltenen Worten durchsuchen

  • Hallo zusammen

    Ich suche eine Möglichkeit nfo-Dateien nach nicht enthaltenen Worten zu durchsuchen.

    Beispiel: Ich möchte die nfo-Dateien meines Serienordners nach dem Begriff "IMDB" durchsuchen lassen.

    Als Ergebnis dann eine Liste der Dateien, die diesen Begriff NICHT enthält.


    Geht sowas?

  • Unter Unix/Linux:

    find /path/to/movies -name "*.nfo" -exec grep -L IMDB {} \;

    Falls "Batch" ein Windows System meinen sollte - Unix-like find und grep gibt es auch für Windows (paradoxerweise ist Windows find bisschen wie grep und nicht wie Unix find).

    Ansonsten, Powershell oder Windows-cmd-Spezies können das vermutlich auch aus den Ärmeln schütteln (ich müsste da bissche rumprobieren und nachlesen). Mit "for" kann man im Batch rekursiv durch directories. for | Microsoft Learn Windows find hat den /C Parameter, der die Anzahl der Matches anzeigt. Die Liste kann ohne Matches findet man durch Suche nach : 0.

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

  • Kannst mal probieren folgendes als findimdb.cmd zu speichern. (Dirty, ohne Eleganz, Fehlerbehandlung, Paramterübergabe ...)

    Code
    @echo off
    for /r %%f in (*.nfo) do find "IMDB" "%%f" > nul || echo %%f

    Je nachdem, was du mit der Liste vorhast, willst du evt. echo "%%f" statt echo %%f nutzen.

    Dann Windowstaste+R cmd ENTER
    d: bzw. Laufwerksbuchstaben, auf dem halt deine Filme gespeichert sind.
    cd \Pfad\zum\Filmordner
    c:\wo\immer\gespeichert\findimdb.cmd

    Oder auch c:\wo\immer\gespeichert\findimdb.cmd > listeohneimdb.txt

    Anmerkung an die Spezialisten hier. Wollte statt find das Kommando findstr nehmen. Das hat aber offensichtlich Probleme mit Sonderzeichen im Dateinamen. Das ist mir wirklich schon lange nicht mehr vorgekommen. Auch noch alte Tricks probiert mit chcp - geht einfach nicht. Hmmm ... Aber find tut es bei mir scheinbar. Jemand eine Idee warum findstr "irgendwas" "DämlicherName.txt" nicht geht, find aber schon und wie man das ändern kann? Bisschen schockierend, nachdem ich schon viele Jahre nicht mehr über "Umlautprobleme" in Dateinamen gestolpert bin bei modernen Filesystemen, die ja alle Unicode basiert sind.

    Kodi 21.1, 17.6, 21.1, 16, 20.5 on Windows 11 Pro, Android 6, Android 12, FireTV Box 2nd Gen, FireTV 4k Max 2nd Gen
    Media on NAS, OpenMediaVault 6 (Debian Linux).

    Einmal editiert, zuletzt von buers (24. Dezember 2024 um 16:25)

  • Hi.

    Wenn ich häufig so ein Problem zu bewältigen habe, schreibe ich mir schnell ein AutoIt Programm dafür. Sonst kann das ganz ohne Batch der TotalCommander (das für mich wichtigste Windows Programm überhaupt).

    Einfacher geht es nicht.

    Ob du damit dein eigentliches Ziel wirklich erreichst, sei dahin gestellt. Zumindest wenn du rausfinden willst, welche .nfo keine IMDB ID beinhalten, ist das leider der falsche Weg. Denn das Wort "IMDB" steht auch dann in den Tags, wenn gar keine IMDB-ID (aka. tt Nummer) vorhanden ist.

    <uniqueid type="imdb"></uniqueid>

    vs.

    <uniqueid type="imdb">tt3006802</uniqueid>

    Das wirst du mit einer Suche nach "IMDB" nicht unterscheiden können.

    Da wird man vermutlich über RegEx gehen müssen um nach "tt[0-9]" (also die Buchstaben tt gefolgt von einer beliebigen Ziffer) suchen zu lassen.

    -------------------------------------
    Danke fürs lesen, Claus

  • Hi.

    Man braucht vielleicht doch kein RegEx dafür. Ich hab grade eine einfache Lösung gefunden. Nicht nach 'IMDB' suchen, sondern nach '<uniqueid type="imdb">tt' (ohne die ' natürlich)

    So werden alle .nfo gefunden, die keine TT Nummer beinhalten. Man kann das am besten zweimal durchlaufen lassen, falls irgendwo in einer .nfo der UniqueID Tag komplett fehlt. Oder eben doch mit RegEx nach tt[0-9] suchen.

    Bei mir sind die Such- Ergebnisse in meinem Serien- Arbeitsverzeichnis bei tt[0-9] mit RegEx identisch zu '<uniqueid type="imdb">tt' ohne RegEx, jeweils 58 Treffer. Wohingegen die Suche nach IMDB nur 12 Treffer ergibt...

    -------------------------------------
    Danke fürs lesen, Claus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!