PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateien verändern in Batch-Datei


/me
2003-08-06, 15:28:27
Hallo,

um meine m3u playlists zu erstellen habe ich vor, sie mithilfe einer Batch datei dynamisch zu erstellen.

mein Problem:

wie kann ich vor jede Zeile einer Datei etwas schreiben.

also aus

test1.mp3
test2.mp3
test3.mp3

soll dann

c:\ordner1\test1.mp3
c:\ordner1\test2.mp3
c:\ordner1\test3.mp3

werden.

:help:
/me

Tom Servo
2003-08-06, 16:32:15
Könntest du mit sed machen (z.B. Teil von cygwin, aber es gibt ganz sicher auch reine MSDOS oder Windows Versionen).

Hier z.B.

sed 's/^.*\.mp3 *$/C:\\ordner1\\&/i' alte_datei.m3u >neue_datei.m3u

Das Kommando bedeutet etwa:

s = substitute (ersetzte text)
/ = Textmuster (alter text) geht vom ersten / bis zum zweiten /
^ = Zeilenanfang
. = irgendein Zeichen
* = das Zeichen vor dem * darf beliebig oft oder auch gar nicht auftreten
$ = Zeilen-Ende
/ = neuer Text vom zweiten / bis zum dritten /
\\ = entspricht einem \ (weil ein einzelnes \ anderweitig benutzt wird)
& = Variable die den alten Text enthält
i = ingore case (Gross-/Kleinschreibung von .mp3 ist dann egal)

Also ersetze den Zeilenanfang durch C:\ordner1\ und hänge die alte Zeile hinten dran. Mache das aber nur für Zeilen die mit .mp3 enden (oder auch mit .mp3 gefolgt von Leerzeichen)

Oder suche mit google nach "man sed" um die Manpage von sed zu lesen.

stabilo_boss13
2003-08-06, 16:42:42
Oder in der Kommandozeile:

dir c:\ordner1 /s /b > playlist.txt

eingeben.

Das erstellt im aktuellen Verzeichnis eine Datei namens Playlist.txt mit dem Inhalt:
c:\ordner1\test1.mp3
c:\ordner1\test2.mp3
c:\ordner1\test3.mp3

Tom Servo
2003-08-06, 16:52:58
Wobei er danach nicht gefragt hatte, aber wenn es das ist was er eigentlich vorhat, ist das natürlich einfacher.

Naja, ich benutze sed meistens um ID-Tags anhand des Dateinamens zu sezten. Also es lohnt sich schon das Programm zu installieren. Das geht mit dir sicher nicht:


find * -name '*.mp3' | sed -e 's/^\(.*\)\/\([0-9][0-9]*\) - \(.*\)\.mp3/id3tool --set-album="\1" --set-track=\2 --set-title="\3" --set-artist="The Clash" --set-genre=43 "&"/' \
\
-e 's/^\(.*\)\/\(The Clash\)-\(.*\)\.mp3/id3tool --set-album="\1" --set-title="\3" --set-artist="The Clash" --set-genre=43 "&"/'


;)

/me
2003-08-06, 17:39:13
Original geschrieben von stabilo_boss13
Oder in der Kommandozeile:

dir c:\ordner1 /s /b > playlist.txt

eingeben.

Das erstellt im aktuellen Verzeichnis eine Datei namens Playlist.txt mit dem Inhalt:
c:\ordner1\test1.mp3
c:\ordner1\test2.mp3
c:\ordner1\test3.mp3

danke, du bist meine Rettung! :D

ich hab die ganzen playlists auch mit dir /b erstellt. Was mir gefehlt hat war die /s Option :)

jetzt funzts

thx,
/me