Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

per batch neue dateien in verzeichnis auslesen, dateinamen als variable in xml datei einfügen.

Mitglied: richtig

richtig (Level 1) - Jetzt verbinden

31.08.2007, aktualisiert 18.10.2012, 11422 Aufrufe, 11 Kommentare

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
Mitglied: Biber
31.08.2007 um 12:50 Uhr
Moin grussascha,

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
Bitte warten ..
Mitglied: MRosoft
31.08.2007 um 13:02 Uhr
Die Dateien heißen z.B. 99luftballons_Nena.Flv

in der XML steht dann

<track>
<title>99luftballons</title>
<creator>Nena</creator>
<location>media/99luftballons.flv</location>
</track>




Bitte korigiert mich wenn ich das falsch wiedergegeben habe.
Bitte warten ..
Mitglied: richtig
31.08.2007 um 13:50 Uhr
fast. wenn du beispielsweise eine datei hast mit dem namen nena_99luftballons.flv dann sollte folgender textblock in die xls eingefügt werden:

<track>
<title>99luftballons</title>
<creator>nena</creator>
<location>media/nena_99luftballons.flv</location>
</track>

ich könnte mir aber auch vorstellen, dass das gestartete skript eine eingabe für title und creator fordert, damit ich evtl. auch einer mediendatei mit dem namen mov0001.flv einen titel und autor zuweisen kann.

grussascha
Bitte warten ..
Mitglied: richtig
03.09.2007 um 15:34 Uhr
hallo,

erste erfolgserlebnisse konnte ich am wochenende verbuchen. ich schaffe es zumindest schonmal einen textblock in der gewünschten formatierung auszugeben. das verzeichnis enthält beispielsweise drei flv-dateien. MVI_3101.flv, MVI_3102.flv und MVI_3103.flv

der code hierfür sieht so aus:
@echo off
dir *.flv /b >>mediadaten.txt
for /F "tokens=1 delims=_." %%i in (mediadaten.txt) do set title=%%i
for /F "tokens=2 delims=_." %%j in (mediadaten.txt) do set author=%%j
for /F %%k in (mediadaten.txt) do set filename=%%k
echo ^<track^> >>playlist.txt
echo ^<title^>%title%^<^/title^> >>playlist.txt
echo ^<creator^>%author%^<^/creator^> >>playlist.txt
echo ^<location^>media^/%filename%^<^/location^> >>playlist.txt
echo ^<^/track^>

das ergebnis in der playlist.txt:
<track>
<title>MVI</title>
<creator>3103</creator>
<location>media/MVI_3103.flv</location>
</track>

problem: ich bekomme immer nur die letzte datei der auflistung in mediadaten.txt als textblock angezeigt. leider nicht pro datei einen textblock (so sollte es aussehen):
<track>
<title>MVI</title>
<creator>3101</creator>
<location>media/MVI_3101.flv</location>
</track>
<track>
<title>MVI</title>
<creator>3102</creator>
<location>media/MVI_3102.flv</location>
</track>
<track>
<title>MVI</title>
<creator>3103</creator>
<location>media/MVI_3103.flv</location>
</track>

außerdem brauche ich jetzt noch eine funktion, die kopf und fußdaten der playlist datei in die playlist.txt einträgt. alles in allem sollte dann so aussehen:

--------- kopfzeilen ----------
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/;>"
<trackList>

---------- trackliste ----------
<track>
<title>MVI</title>
<creator>3101</creator>
<location>media/MVI_3101.flv</location>
</track>
<track>
<title>MVI</title>
<creator>3102</creator>
<location>media/MVI_3102.flv</location>
</track>
<track>
<title>MVI</title>
<creator>3103</creator>
<location>media/MVI_3103.flv</location>
</track>

---------- fußzeilen ----------
</trackList>
</playlist>

eine idee, wie ich da weitermachen kann?

grussascha
Bitte warten ..
Mitglied: richtig
05.09.2007 um 10:34 Uhr
ok, etwas verkürzen kann ich die sache ja, indem ich das erstellen einer temporären txt einfach sein lasse und den DIR befehl in die for schleife einbinde: ('dir *.flv /b').

problem allerdings immernoch... und da komme ich einfach nicht weiter, obwohl ich jetzt schon seit 3 tagen tutorials und beiträge durchforste:

for /f "token=1,2 delims=." %%1 ('dir *.flv /b') do echo %%1

so, %%1 gibt mir nun untereinander alle werte für das entsprechende token an. hier also untereinander alle präfixe der dateien, die sich im verzeichnis befinden und mit .flv enden. bei datei1.flv, datei2.flv und datei3.flv im verzeichnis also:

datei1
datei2
datei3

setze ich %%1 nun als umgebungsvariable %dat1% dann bekomme ich als ausgabe immer nur den letzten der aufgelisteten werte, da die anderen ja immer durch den folgenden wert überschrieben wurden. in diesem fall ergibt das:

set dat1=%%1
echo %dat1%
--- ausgabe ---
datei3

wie kann ich diesen einzelnen ausgaben denn nun verschiedene umgebungsvariablen zuweisen? ich möchte nämlich im weiteren verlauf die drei präfixe wieder aufrufen. sprich:

datei1 soll zu %dat1%
datei2 soll zu %dat2% etc. werden

mal sehn, ob mir da jemand weiterhelfen kann
danke und grussascha
Bitte warten ..
Mitglied: MRosoft
05.09.2007, aktualisiert 18.10.2012
Schau mal hier vielleicht kommst Du damit weiter ist ja sowas ähnliches


https://www.administrator.de/forum/ordnernamen-mit-mp3-information-und-i ...
Bitte warten ..
Mitglied: bastla
06.09.2007 um 20:37 Uhr
Hallo richtig!

Das, was Du mit den Dateinamen vorhast, solltest Du nicht auf später verschieben, sondern gleich erledigen, etwa (rein handwerklich) so:
01.
@echo off & setlocal
02.
cd /d "D:\media"
03.
set "PL=playlist.txt"
04.
set "Typ=flv"
05.
 
06.
::Kopf
07.
echo ^<?xml version="1.0" encoding="utf-8"?^>>"%PL%"
08.
echo ^<playlist version="1" xmlns="http://xspf.org/ns/0/"^>;>>"%PL%"
09.
echo ^<trackList^>>>"%PL%"
10.
 
11.
::Rumpf
12.
for %%i in (*.%Typ%) do (
13.
	for /f "tokens=1* delims=_" %%a in ('echo %%~ni') do (
14.
		echo ^<track^>>>"%PL%"
15.
		echo ^<title^>%%a^<^/title^>>>"%PL%"
16.
		echo ^<creator^>%%b^<^/creator^>>>"%PL%"
17.
		echo ^<location^>media^/%%~nxi^<^/location^>>>"%PL%"
18.
		echo ^<^/track^>>>"%PL%"
19.
	)
20.
)
21.
 
22.
::Fuß
23.
echo ^</trackList^>>>"%PL%"
24.
echo ^</playlist^>>>"%PL%"
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]
Bitte warten ..
Mitglied: richtig
06.09.2007 um 22:34 Uhr
hallo bastla,

vielen dank!!! sieht ganz gut aus. ich werde es a. s. a. p. ausprobieren. so wie's aussieht schachtelsts du den for befehl mehrfach ineinander, und fängst die parameter, bevor sie überschrieben werden können, ab, um sie weiterzuverarbeiten; hab ich das richtig erkannt? also mal in meinem laien-batch-talk formuliert...

sieht echt super aus. muss das mal stück für stück durchgehen, ums auch zu kapieren. aber schonmal herzlichsten dank für die arbeit, die du dir gemacht hast. ich melde mich wieder, wenn ichs getestet habe.

danke und guten rutsch ins wochenende schonmal
grussascha
Bitte warten ..
Mitglied: richtig
12.09.2007 um 09:14 Uhr
hallo bastla, hallo an alle anderen,

hat etwas gedauert... bin aber gestern mal endlich wieder dazu gekommen. und ich kann nur sagen: perfekt! ich hab die verzeichnisse angepasst und es hat schonmal sofort 1a funktioniert.

wie könnte man es erreichen, dass das verzeichnis auch gemischte dateitypen enthalten kann? das wäre der einzige punkt, über den es sich noch lohnen würde nachzudenken. es kann auch mal sein, dass ein mp3 oder jpg von dem player geladen werden soll.

ich habe etwas mit den delims und tokens rumprobiert, bekomme das aber nicht so recht hin, da ich dann, wie du schon oben erwähnt hast, die dateinamen nicht wirklich flexibel gestalten kann.

hast du da noch eine idee?

danke schonmal und gruß
sascha
Bitte warten ..
Mitglied: bastla
12.09.2007 um 12:24 Uhr
Hallo richtig!

Das könnte dann so gehen:
01.
@echo off & setlocal
02.
cd /d "D:\media"
03.
set "PL=CSV-playlist.txt"
04.
set "Typ=flv jpg mp3"
05.
 
06.
::Kopf
07.
echo ^<?xml version="1.0" encoding="utf-8"?^>>"%PL%"
08.
echo ^<playlist version="1" xmlns="http://xspf.org/ns/0/"^>;>>"%PL%"
09.
echo ^<trackList^>>>"%PL%"
10.
 
11.
::Rumpf
12.
for %%t in (%Typ%) do (
13.
	for %%i in (*.%%t) do (
14.
		for /f "tokens=1* delims=_" %%a in ('echo %%~ni') do (
15.
			echo ^<track^>>>"%PL%"
16.
			echo ^<title^>%%a^<^/title^>>>"%PL%"
17.
			echo ^<creator^>%%b^<^/creator^>>>"%PL%"
18.
			echo ^<location^>media^/%%~nxi^<^/location^>>>"%PL%"
19.
			echo ^<^/track^>>>"%PL%"
20.
		)
21.
	)
22.
)
23.
 
24.
::Fuß
25.
echo ^</trackList^>>>"%PL%"
26.
echo ^</playlist^>>>"%PL%"
Die einzelnen in der "set"-Zeile angeführten Typen müssen durch Leerstellen getrennt sein.

Grüße
bastla
Bitte warten ..
Mitglied: richtig
13.09.2007 um 14:22 Uhr
ah, super. so viel muss man da gar nicht ändern. wusst nicht, dass ich oben auch mehrere dateiendungen angeben kann.

also, danke für die super hilfe. ich werde noch einen anderen aufmachen, da ich nun an einem problem mit der synchronisierung von einem ftp verzeichnis und einem lokalen verzeichnis habe.

langsam komm ich dem batchen auch auf die schliche ;) kannst ja in den anderen thread mal reinschaun... ich zähl auf deine hilfe.

danke nochmal
grussascha
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Anfangstext bei einer xml Datei bearbeiten durch Batch Datei

gelöst Frage von GrauerStarBatch & Shell5 Kommentare

Hallo :D Ist das möglich so wie ich mir das vorstelle?: Eine Batch Datei die in einem Ordner automatisch ...

Batch & Shell

Batch Datei in zufälliges Verzeichnis navigieren

Frage von MarioBros778Batch & Shell4 Kommentare

Hey Leute, ich hätte da ein Frage: Ist es möglich mit einer cmd datei in ein zufälliges Verzeichnis zu ...

XML

XML Datei Fehler?

Frage von Patrick-ITXML1 Kommentar

Hallo zusammen ich benutze Sysprep, um ein Image von einer Maschine zu machen und lade dieses dann auf einem ...

XML

Inhalt einer .xml Datei ändern mit Batch File

Frage von JJSchumacherXML10 Kommentare

Hallo Zusammen, Ich habe eine kleine Datei activeSite.xml mit folgendem Inhalt: Diese würde ich gerne mit einem .bat (Batch) ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 7 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore30 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript13 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...