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, 11318 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

In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen

gelöst Frage von dh0815Batch & Shell5 Kommentare

Hallo Leute, das ist mein erster Post hier und ich möchte mich vorab schon dafür entschuldigen, wenn ich etwas ...

VB for Applications

Per vbscript neues element an xml datei einfügen

gelöst Frage von aletriVB for Applications1 Kommentar

guten abend an alle das xml file, dass dieser script bearbeitet sieht leer so aus: <?xml version="1.0"?> -<DynPlacement.Document> -<Config> ...

VB for Applications

XML Datei auslesen mit Excel

Frage von kaiuwe28VB for Applications10 Kommentare

Hallo zusammen, ich mal wieder Leider komme ich nicht weiter. Ich möchte aus einem Ordner mit mehreren XML Dateien ...

Batch & Shell

Datei aus Verzeichnis auslesen?

gelöst Frage von freshman2017Batch & Shell4 Kommentare

Hallo Ihr! Ich wollte mir gerade mit nachfolgendem Batch Befehl: alle darin befindlichen Bilder auflisten. Ausgabe: Wie kann ich ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 9 StundenHumor (lol)2 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 22 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 22 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server45 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware16 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...