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.

Frage Entwicklung Batch & Shell

Mitglied: richtig

richtig (Level 1) - Jetzt verbinden

31.08.2007, aktualisiert 18.10.2012, 11292 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


http://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
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 59 MinutenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 6 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 6 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 18 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...