per batch neue dateien in verzeichnis auslesen, dateinamen als variable in xml datei einfügen.
hallo zusammen,
um was geht es:
auf einer html seite befindet sich ein flash player inkl. playlist. die playlist liegt dort in einer xml datei vor. in der playlist sind alle dateinamen eines bestimmten verzeichnisses enthalten sowie der autor und titel des jeweiligen stückes.
bsp.:
im verzeichnis /media liegt die datei titel_autor.flv und die datei titel2_autor.flv
die playlist.xml datei ist folgendermaßen aufgebaut:
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<title>titel</title>
<creator>autor</creator>
<location>media/titel_autor.flv</location>
</track>
<track>
<title>titel2</title>
<creator>autor</creator>
<location>media/titel2_autor.flv</location>
</track>
</trackList>
</playlist>
mein problem:
bisher musste jede einzelne datei zunächst in das verzeichnis /media geladen werden, anschließend die playlist bearbeitet und in das stammverzeichnis des flash players geladen werden.
mein ziel:
toll wäre, wenn man alles automatisieren könnte: ein batch-skript liest das verzeichnis aus, in dem die videos gespeichert werden und gibt die dateinamen als variable weiter (evtl. auch nur die NEUEN dateien). jeder dateiname wird nun in die xml datei eingefügt (zeile 4) und mit den entsprechenden tags versehen. teile des dateinamens sollten dann als titel und autor verwendet werden. eventuell könnte man dann alles noch per ftp uploaden.
meine bitte:
ich habe sehr begrenzte batch kenntnisse und möchte diese aufgabe nutzen, um tiefer einzusteigen. es wäre super, wenn mir jemand mal ein paar hilfestellungen geben könnte; welche befehle ich brauche, wo ich eventuell ein paar beispiele für die einzelnen befehle finden kann.
ich danke euch schonmal und wünsche einen guten start ins wochenende ;)
grussascha
um was geht es:
auf einer html seite befindet sich ein flash player inkl. playlist. die playlist liegt dort in einer xml datei vor. in der playlist sind alle dateinamen eines bestimmten verzeichnisses enthalten sowie der autor und titel des jeweiligen stückes.
bsp.:
im verzeichnis /media liegt die datei titel_autor.flv und die datei titel2_autor.flv
die playlist.xml datei ist folgendermaßen aufgebaut:
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<title>titel</title>
<creator>autor</creator>
<location>media/titel_autor.flv</location>
</track>
<track>
<title>titel2</title>
<creator>autor</creator>
<location>media/titel2_autor.flv</location>
</track>
</trackList>
</playlist>
mein problem:
bisher musste jede einzelne datei zunächst in das verzeichnis /media geladen werden, anschließend die playlist bearbeitet und in das stammverzeichnis des flash players geladen werden.
mein ziel:
toll wäre, wenn man alles automatisieren könnte: ein batch-skript liest das verzeichnis aus, in dem die videos gespeichert werden und gibt die dateinamen als variable weiter (evtl. auch nur die NEUEN dateien). jeder dateiname wird nun in die xml datei eingefügt (zeile 4) und mit den entsprechenden tags versehen. teile des dateinamens sollten dann als titel und autor verwendet werden. eventuell könnte man dann alles noch per ftp uploaden.
meine bitte:
ich habe sehr begrenzte batch kenntnisse und möchte diese aufgabe nutzen, um tiefer einzusteigen. es wäre super, wenn mir jemand mal ein paar hilfestellungen geben könnte; welche befehle ich brauche, wo ich eventuell ein paar beispiele für die einzelnen befehle finden kann.
ich danke euch schonmal und wünsche einen guten start ins wochenende ;)
grussascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 67561
Url: https://administrator.de/contentid/67561
Ausgedruckt am: 19.11.2024 um 17:11 Uhr
11 Kommentare
Neuester Kommentar
Moin grussascha,
könntest Du bitte den zweiten Teil des folgenden Zitats etwas konkretisieren bitte?
Am Besten mit Beispielen.
Danke
Biber
könntest Du bitte den zweiten Teil des folgenden Zitats etwas konkretisieren bitte?
und gibt die dateinamen als variable weiter (evtl. auch nur die NEUEN dateien). jeder dateiname wird nun in die xml datei eingefügt (zeile 4) und mit den entsprechenden tags versehen. teile des dateinamens sollten dann als titel und autor verwendet werden
Am Besten mit Beispielen.
Danke
Biber
Schau mal hier vielleicht kommst Du damit weiter ist ja sowas ähnliches
Ordnernamen mit mp3-Information und Inhalt (Titel) auslesen und in Textdatei schreiben
Ordnernamen mit mp3-Information und Inhalt (Titel) auslesen und in Textdatei schreiben
Hallo richtig!
Das, was Du mit den Dateinamen vorhast, solltest Du nicht auf später verschieben, sondern gleich erledigen, etwa (rein handwerklich) so:
Um die Lösung etwas flexibler zu gestalten, werden in der ersten Schleife alle passenden Dateien (*.%Typ%) gelesen und nur der Dateiname (%%~ni) in der zweiten Schleife als Eingabe verwendet. Damit wird erreicht, dass sowohl Titel als auch Autor auch einen oder mehrere Punkte aufweisen dürfen. Mit "tokens=1*" wird als zusätzlich nur das erste Auftreten von "_" als Trennung Titel/Autor interpretiert, sodass im (unwahrscheinlichen?) Fall mehrerer enthaltener "_" keine Namensbestandteile verloren gehen.
Aufgrund Deiner Vorlage noch fest "verdrahtet" ist der Pfad "media", weshalb am Anfang in das entsprechende Verzeichnis (bitte anpassen) gewechselt wird - hier wäre noch eine variable Lösung zu überlegen.
Grüße
bastla
[Edit] Da im Tag <location> ja eigentlich immer der "originale" Dateiname stehen muss, habe ich die entsprechende Zeile dahingehend abgeändert. [/Edit]
Das, was Du mit den Dateinamen vorhast, solltest Du nicht auf später verschieben, sondern gleich erledigen, etwa (rein handwerklich) so:
@echo off & setlocal
cd /d "D:\media"
set "PL=playlist.txt"
set "Typ=flv"
::Kopf
echo ^<?xml version="1.0" encoding="utf-8"?^>>"%PL%"
echo ^<playlist version="1" xmlns="http://xspf.org/ns/0/"^>;>>"%PL%"
echo ^<trackList^>>>"%PL%"
::Rumpf
for %%i in (*.%Typ%) do (
for /f "tokens=1* delims=_" %%a in ('echo %%~ni') do (
echo ^<track^>>>"%PL%"
echo ^<title^>%%a^<^/title^>>>"%PL%"
echo ^<creator^>%%b^<^/creator^>>>"%PL%"
echo ^<location^>media^/%%~nxi^<^/location^>>>"%PL%"
echo ^<^/track^>>>"%PL%"
)
)
::Fuß
echo ^</trackList^>>>"%PL%"
echo ^</playlist^>>>"%PL%"
Aufgrund Deiner Vorlage noch fest "verdrahtet" ist der Pfad "media", weshalb am Anfang in das entsprechende Verzeichnis (bitte anpassen) gewechselt wird - hier wäre noch eine variable Lösung zu überlegen.
Grüße
bastla
[Edit] Da im Tag <location> ja eigentlich immer der "originale" Dateiname stehen muss, habe ich die entsprechende Zeile dahingehend abgeändert. [/Edit]
Hallo richtig!
Das könnte dann so gehen:
Die einzelnen in der "set"-Zeile angeführten Typen müssen durch Leerstellen getrennt sein.
Grüße
bastla
Das könnte dann so gehen:
@echo off & setlocal
cd /d "D:\media"
set "PL=CSV-playlist.txt"
set "Typ=flv jpg mp3"
::Kopf
echo ^<?xml version="1.0" encoding="utf-8"?^>>"%PL%"
echo ^<playlist version="1" xmlns="http://xspf.org/ns/0/"^>;>>"%PL%"
echo ^<trackList^>>>"%PL%"
::Rumpf
for %%t in (%Typ%) do (
for %%i in (*.%%t) do (
for /f "tokens=1* delims=_" %%a in ('echo %%~ni') do (
echo ^<track^>>>"%PL%"
echo ^<title^>%%a^<^/title^>>>"%PL%"
echo ^<creator^>%%b^<^/creator^>>>"%PL%"
echo ^<location^>media^/%%~nxi^<^/location^>>>"%PL%"
echo ^<^/track^>>>"%PL%"
)
)
)
::Fuß
echo ^</trackList^>>>"%PL%"
echo ^</playlist^>>>"%PL%"
Grüße
bastla