Skript: NAME einer Textdatei in eine XML-Datei im gleichen HDD-Ordner eintragen?

rloxley

Grünschnabel
Hallo Leute!

Ich möchte gerne ein Skript / eine batch-Datei wie im Titel beschrieben erstellen. Das Szenario: Ich habe sehr viele Ordner und Unterordner auf diversen Festplatten (nicht nur C:/") , in denen u.a. JEWEILS eine NFO-Datei (mit XML-Inhalt) und zukünftig eine Textdatei liegen. Das benötigte Skript soll dann "einfach" automatisch die NAMEN der Textdateien auslesen und an gewünschter Stelle in die NFO-Datei im gleichen Ordner eintragen. In meinem Fall handelt es sich um Film-Informationen, die in der NFO-Datei eingetragen werden und später von einem Mediacenter ausgelesen werden.

Eine XML-Datei ist ja nach folgendem Beispiel-Schema aufgebaut:
<title></title>
<rating></rating>
<year></year>
<genre></genre>
<country></country>

Um diese Informationen nach und nach einzutragen, würde ich gerne so vorgehen, dass ich jeden Film in allen Unterordnern kurz starte und nur nach EINER dieser Informationen suche, z.B. Country = Deutschland, USA, GB, usw... Das Ergebnis würde ich dann jeweils als eine Textdatei in jedem diesem Ordner speichern, also z.B. "Deutschland.txt" oder "USA.txt". Wenn ich damit fertig bin, liegt dann also in jedem Unterordner NUR jeweils EINE Textdatei mit Namen des Landes. Dann möchte ich das Skript starten und es soll eben z.B. dieses "Deutschland", "USA" usw. in allen Ordnern in die jeweilige XML-Datei im gleichen Ordner bei "<country></country>" eintragen, sodass ich die Eingaben nicht alle einzeln von Hand machen muss.

Ich hoffe, das konnte man soweit nachvollziehen :)

So ein einmaliges Skript könnte ich dann ja leicht für alle gewünschten XML-Einträge anpassen, also dann auch für genre, year usw., sodass ich für alle gewünschten Einträge auch Skripte habe, die ich nacheinander abarbeiten kann.

Ich habe leider keine (oder nur SEHR eingeschränkte) Skript-Erfahrungen... Hat da jemand eine Lösung für mich, wie ich das am Besten anstelle? Oder sogar einen einfacheren/besseren Lösungsvorschlag? Zur Info: Es handelt sich um Filme (Dokus), die eben leider nicht automatisch mit den gängigen Programmen aus den web-Datenbanken geholt und erstellt werden können, da sie da nicht zu finden sind.

Ich danke Euch schon mal für das Interesse, eure Zeit und jeden Lösungsvorschlag :)

Viele Grüße.
 
Dankeschön für Deine Antwort un den Tipp.

Ich befürchte, das ist mir weitaus zu abstrakt, um es für mein Problem adaptieren zu können...
 
Ich verstehe nicht ganz, woher die Informationen wie das Land kommen sollen? Soll das Skript dich das manuell fragen?
 
Nein, so wie beschrieben: Ich sehe mir jede Doku kurz an, stelle fest, aus welchem Land sie stammt, und schreibe den Namen des Landes als Titel in eine neue Textdatei im gleichen Ordner. Ich erstelle selber manuell eine "USA.txt", z.B. Der Name soll dann, wenn ich fertig bin, jeweils ausgelesen werden und in den entsprechenden tag in die *.nfo (xml) im gleichen Ordner eingetragen werden.
 
Ah, wieso schreibst den Namen des Landes nicht einfach in eine Datei mit einheitlichem Namen? Zum Beispiel legst du immer eine Datei "Land.txt" an und bei Doku #1 hätte die den Inhalt "USA" und bei Doku #2 den Inhalt "Österreich".

Noch einfacher: leg eine Exceltabelle an mit Zeilen für die Dokus und Spalten Herkunftsland, Genre usw. Danach kann das Skript (nimm PowerShell) das sehr komfortabel auslesen und in die XML-Dateien eintragen.
 
Was ist denn der Vorteil bei der Vorgehensweise? Meine Vorstellung: Rechtklick im Ordner, neues Textdokument, "USA", fertig. Wenn alle fertig sind, Skript laufen lassen. Finde ich schneller und unkomplizierter.

Mit Excel arbeite ich gar nicht... Die Idee klingt nicht so schlecht, aber da MUSS ich wohl SÄMTLICHE Informationen erst einmal zusammen haben, bevor man das Skript laufen lässt. So, wie ich es vorhabe, können die Länder schon eingetragen werden, wenn ich die Kategorien, Laufzeit, usw. noch gar nicht ermittelt habe.. gefällt mir besser.
 
Was ist denn der Vorteil bei der Vorgehensweise? Meine Vorstellung: Rechtklick im Ordner, neues Textdokument, "USA", fertig. Wenn alle fertig sind, Skript laufen lassen. Finde ich schneller und unkomplizierter.

Woher soll das Skript wissen, wo der Ländername steht? Was, wenn du später dann zwei Dateien hast: USA.txt, Horror.txt. Woher soll das Skript wissen, dass Ersteres das Land ist und Zweiteres das Genre? Das würde die Komplexität des Skripts maßgeblich steigern, weil du Listen mit allen Länder- und Genrenamen vorhalten müsstest.

Die Idee klingt nicht so schlecht, aber da MUSS ich wohl SÄMTLICHE Informationen erst einmal zusammen haben, bevor man das Skript laufen lässt.
Nein, du könntest bei noch fehlender Information die Zelle einfach leer lassen. Das Skript würde dann diese leere Information nicht eintragen.
 
Indem man es ihm sagt? Schreibt man Skripts nicht immer so? Ich HABE später keine zwei Dateien, weil ich jeweils nur schnell nach EINER Rubrik durchschauen möchte, also z.B. NUR Länder. Ich brauche und möchte gar keine "all-in-one"-Lösung für alle Infos auf einmal. Mir reicht ein kleines Skript, das ich dann selbst kurz abwandeln kann, je nach dem, in welchem tag die Info eingetragen werden soll (Land, Laufzeit, Kategorie, etc.). Dann lasse ich das Länder-Skript laufen. Danach sehe ich vielleicht NUR schnell das Genre durch und lasse dann das Genre-Skript laufen. SO möchte ICH es machen. Einen Vorteil sehe ich in Deinen sicher gut gemeinten "Mach das mal anders"-Vorschlägen für mich und meine gewünschte Arbeitsweise nicht. Ich verstehe auch nicht, was Dein Grund ist, mich unbedingt von dem abzubringen... WO ein Skript die Info ausliest, ob im Namen einer Textdatei oder IN der Textdatei, ist doch egal. Korrigiert mich bitte, wenn das falsch ist.

Warum ich das auf keinen Fall so machen soll, wie ICH arbeiten möchte, erschliesst sich mir nicht.
 
Eines verstehe ich noch nicht: Du musst ja wissen, zu welchem Film diese Textdatei gehört, jedenfalls dann, wenn mehrere oder viele Filme in dem Ordner sind. Oder hat jeder Film einen Ordner für sich?
 
Zurück