Manfred, wie du weißt, kann Mp3tag mit jedem Exportskript nur eine einzige Ausgabe Textdatei erzeugen.
Der Name dieser Textdatei kann bestimmt werden mit der Funktion $filename().
Der Name kann ein einfaches Literal sein, ...
z. B. $filename('Meine neue Textdatei.txt',ANSI),
... oder mit Hilfe anderer Mp3tag Funktionen oder Platzhalter zusammengesetzt sein, ...
z. B. $filename('Liste - '%ARTIST%'.txt',UTF-8).
Die Ausgabe eines Mp3tag Export Skripts kann man so gestalten, dass es wie ein Kommandoskript für eine andere Anwendung aussieht. So kann man z. B. ein Kommandozeilen Skript (Dateiendung ".cmd") oder ein Visual Basic Script (Dateiendung ".vbs") oder andere textbasierte Skripte mit dem Mp3tag Export erzeugen.
Ein derart erzeugtes Skript kann, soweit die andere Skriptumgebung das leisten kann, dazu benutzt werden, wiederum eine oder mehrere Dateien zu erzeugen, wenn es nach der Erstellung durch den Mp3tag Export "angezeigt" wird, das heißt ausgeführt wird.
Auf der DOS Kommandozeile kann man im Zielordner eingeben ...
COPY NUL: _artist.jpg.mp3
... und man erhält dort eine Null-Byte-Datei ...
2012-02-13 08:35 0 _artist.jpg.mp3
Die Aufgabe, so etwas in vielen Ordnern zu tun, kann man von einem CMD Skript erledigen lassen, dass zuvor von Mp3tag Export erzeugt worden ist.
Der Artist-Ordner liegt über dem Album-Ordner, der die Musikdatei enthält.
Nehmen wir den Standort der Musikdatei als Referenz, das ist der Album-Ordner, so ist der Artist-Ordner eine Ebene darüber im Dateisystem so zu erreichen ...
CD ..
Mp3tag hat eine Systemvariable, die auf den Ordner der Musikdatei zeigt: %_folderpath%
Der Ordner eine Ebene darüber ist mit Hilfe eines Mp3tag CMD Exportskripts so zu erreichen ...
'CD '%_folderpath%'..'
Die Mp3tag CMD Skript Kommandofolge ...
'CD /D '%_folderpath%'..'
'COPY NUL: _artist.jpg.mp3'
... erzeugt in jedem Zielordner eine Null-Byte Datei.
Nun setzt man das in ein Schleifenkonstrukt und lässt es so oft ausführen wie einzigartige Artisten vorhanden sind, denn jeder Artist hat ja seinen eigenen Ordner, in dem die neue leere Datei erzeugt werden soll ...
$loop(%ARTIST%,1) ... $loopend
Und weil man nicht jede Musikdatei anfassen muss, in diesem Fall reicht es, nur eine anzufassen, beschränken wir das mit einer weiteren Schleifenanweisung ...
$loop(%_filename%,1) ... $loopend()
Alles zusammengebaut sieht das so aus ...
01: $filename($getEnv('USERPROFILE')'\Desktop\CreateNullByteDummyFiles.cmd',ANSI)
02: '@ECHO OFF'
03: 'ECHO.[%~n]'
04: 'ECHO.####################################'
05: 'ECHO.# #'
06: 'ECHO.# Create Null Byte Dummy Files #'
07: 'ECHO.# #'
08: 'ECHO.####################################'
09: 'ECHO.'
10: 'ECHO.Press [Ctrl+C] to cancel or [Enter] to continue ...'
11: 'PAUSE >NUL'
12: 'SET DF=_artist.jpg.mp3'
13: 'SET HF=%USERPROFILE%\Desktop<!--colorc-->'
14: 'SET LF=%HF%LogFile.CNBDF.txt'
15: 'CD /D "%HF%"'
16: 'DEL "%LF%" >NUL 2>&1'
17: 'ECHO.'
18: $loop(%ARTIST%,1)$loop(%_filename%,1)
19: 'ECHO.File : "'%_folderpath%'..\%DF%"'
20: 'ECHO.File : "'%_folderpath%'..\%DF%" >>"%LF%" 2>&1'
21: 'CD /D "'%_folderpath%'.."'
22: 'ECHO.Folder: "%CD%"'
23: 'ECHO.Folder: "%CD%" >>"%LF%" 2>&1'
24: 'ECHO.'
25: 'REM DEL "%DF%" >>"%LF%" 2>&1'
26: 'COPY NUL: "%DF%"'
27: 'DIR -P/A/N/O:GNE "%DF%"|FIND "%DF%" >>"%LF%" 2>&1'
28: 'ECHO.>>"%LF%" 2>&1'
29: 'ECHO.'
30: 'ECHO.'
31: $loopend()$loopend()
32: 'CD /D "%HF%"'
33: 'ECHO.'
34: 'ECHO.Ready.'
35: 'ECHO.'
36: 'ECHO.Press [Enter] to continue ...'
37: 'PAUSE >NUL'
38: 'START "LogFile" "%LF%"'
39: ':EOB'
40: 'REM ©Detlev Dalitz.20120213.2020.'
(Zeilennummern vor dem Gebrauch entfernen!)
20120213.CreateNullByteDummyFiles.mte (1.1 KB)
DD.20120213.1016.CET
Edit.DD.20120213.1700.CET
Edit.DD.20120213.2027.CET
20120213.CreateNullByteDummyFiles.mte (1.1 KB)