Zeichen suchen und in die nächste Zeile was kopieren
Klaus20 (Level 1) - Jetzt verbinden
04.12.2020, aktualisiert 05.12.2020, 480 Aufrufe, 13 Kommentare, 1 Danke
Hallo Forum, hätte mal wieder eine Frage an die Batch Profis.
Habe mir mehrere Playlisten erstellt und die immer im jeweiligen Verzeichnis abgespeichert.
Nun möchte ich die gerne im Haupt musikverzeichis ablegen und in der Playliste den Pfad ändern.
Bisherige Playliste:
#EXTINF:266,Alicia Keys - Why Do I Feel So Bad - Soul - Slow
Alicia Keys\Slow\Why Do I Feel So Bad - Alicia Keys - Soul .mp3
#EXTINF:165,Aretha Franklin - Natural Woman - Soul - Slow
Aretha Franklin\Slow\Natural Woman - Aretha Franklin - Soul .mp3
Ich möchte nach #EXTINF suchen und am nächsten Zeilenanfang zu den Pfad folgenden Zeichen einfügen --> Musik\
Wunschplayliste:
#EXTINF:266,Alicia Keys - Why Do I Feel So Bad - Soul - Slow
Musik\Alicia Keys\Slow\Why Do I Feel So Bad - Alicia Keys - Soul .mp3
#EXTINF:165,Aretha Franklin - Natural Woman - Soul - Slow
Musik\Aretha Franklin\Slow\Natural Woman - Aretha Franklin - Soul .mp3
Ich weiß nicht ob so was überhaupt geht ??
Eine andere Möglichkeit wäre nach den Interpreten zu suchen.
Habe für jeden Interpreten ein eigenes Verzeichnis.
Z.B.: Im Musikverzeichnis den ersten Interpreten auslesen und in den Playlisten den Namen mit Musik\Name ersetzen.
Habe nur leider keine Idee wie ich sowas realisieren kann.
Wäre schön wenn jemand von Euch dazu was einfällt.
Gruß Klaus
Habe mir mehrere Playlisten erstellt und die immer im jeweiligen Verzeichnis abgespeichert.
Nun möchte ich die gerne im Haupt musikverzeichis ablegen und in der Playliste den Pfad ändern.
Bisherige Playliste:
#EXTINF:266,Alicia Keys - Why Do I Feel So Bad - Soul - Slow
Alicia Keys\Slow\Why Do I Feel So Bad - Alicia Keys - Soul .mp3
#EXTINF:165,Aretha Franklin - Natural Woman - Soul - Slow
Aretha Franklin\Slow\Natural Woman - Aretha Franklin - Soul .mp3
Ich möchte nach #EXTINF suchen und am nächsten Zeilenanfang zu den Pfad folgenden Zeichen einfügen --> Musik\
Wunschplayliste:
#EXTINF:266,Alicia Keys - Why Do I Feel So Bad - Soul - Slow
Musik\Alicia Keys\Slow\Why Do I Feel So Bad - Alicia Keys - Soul .mp3
#EXTINF:165,Aretha Franklin - Natural Woman - Soul - Slow
Musik\Aretha Franklin\Slow\Natural Woman - Aretha Franklin - Soul .mp3
Ich weiß nicht ob so was überhaupt geht ??
Eine andere Möglichkeit wäre nach den Interpreten zu suchen.
Habe für jeden Interpreten ein eigenes Verzeichnis.
Z.B.: Im Musikverzeichnis den ersten Interpreten auslesen und in den Playlisten den Namen mit Musik\Name ersetzen.
Habe nur leider keine Idee wie ich sowas realisieren kann.
Wäre schön wenn jemand von Euch dazu was einfällt.
Gruß Klaus
13 Antworten
- LÖSUNG 146707 schreibt am 04.12.2020 um 11:08:31 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 11:21:25 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 11:26:09 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 12:11:54 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 12:23:34 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 12:51:14 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 12:54:40 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 13:21:21 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 15:06:47 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 18:45:57 Uhr
- LÖSUNG 146707 schreibt am 07.12.2020 um 11:37:22 Uhr
- LÖSUNG Klaus20 schreibt am 07.12.2020 um 12:45:33 Uhr
- LÖSUNG 146707 schreibt am 07.12.2020 um 13:00:28 Uhr
- LÖSUNG Klaus20 schreibt am 07.12.2020 um 12:45:33 Uhr
- LÖSUNG 146707 schreibt am 07.12.2020 um 11:37:22 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 18:45:57 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 15:06:47 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 13:21:21 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 12:54:40 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 12:51:14 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 12:23:34 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 12:11:54 Uhr
- LÖSUNG 146707 schreibt am 04.12.2020 um 11:26:09 Uhr
- LÖSUNG Klaus20 schreibt am 04.12.2020 um 11:21:25 Uhr
LÖSUNG 04.12.2020, aktualisiert um 11:09 Uhr
LÖSUNG 04.12.2020 um 11:21 Uhr
LÖSUNG 04.12.2020, aktualisiert um 11:47 Uhr
Batch ruft PS auf und fügt vor alle Zeilen der Datei die nicht mit einer Raute beginnen deinen gewünschten String an und schreibt das ganze wieder zurück, nichts weltbewegendes.
Regular Expressions Tutorial
Macht dir auch jeder halbwegskomfortable Texteditor wie z.B. Notepad++ im Handumdrehen auch ohne irgendwelche Skripte.
Regular Expressions Tutorial
Macht dir auch jeder halbwegskomfortable Texteditor wie z.B. Notepad++ im Handumdrehen auch ohne irgendwelche Skripte.
LÖSUNG 04.12.2020 um 12:11 Uhr
@primal - mache wohl noch einiges falsch ??
Habe zum testen habe zum testen das Verzeichnis Musik mit 2 Unterverzeichnisen (Interpreten) erstellt.
Die beiden Interpreten sind auch in der playlist.txt und in der playlist.m3u.
Inhalt Playlist.txt
38 Special
Aaron Neville
Inhalt playlist.m3u
#EXTM3U
#EXTINF:275,38 Special - Second Chance - Pop - Slow
38 Special\Slow\Second Chance - 38 Special - Pop .mp3
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow
Aaron Neville\Slow\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3
* Bekomme folgende Meldung *
d:\Musik>test
d:\Musik>{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>{\*\generator Riched20 10.0.19041}\viewkind4\uc1
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>\pard\sa200\sl276\slmult1\f0\fs22\lang7 @echo off\par
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>set "datei=d:\\Musik\\playlist.txt"\par
d:\Musik>powershell -EP Bypass -C "(gc 'd:\\Musik\\playlist.txt') -replace '^([^#].*)','Musik\\$1' | sc 'd:\\Musik\\playlist.txt'"\par
sc : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In Zeile:1 Zeichen:67
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.SetContentCommand
sc : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In Zeile:1 Zeichen:67
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.SetContentCommand
d:\Musik>}
Der Befehl "}" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
***
Habe zum testen habe zum testen das Verzeichnis Musik mit 2 Unterverzeichnisen (Interpreten) erstellt.
Die beiden Interpreten sind auch in der playlist.txt und in der playlist.m3u.
Inhalt Playlist.txt
38 Special
Aaron Neville
Inhalt playlist.m3u
#EXTM3U
#EXTINF:275,38 Special - Second Chance - Pop - Slow
38 Special\Slow\Second Chance - 38 Special - Pop .mp3
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow
Aaron Neville\Slow\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3
* Bekomme folgende Meldung *
d:\Musik>test
d:\Musik>{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>{\*\generator Riched20 10.0.19041}\viewkind4\uc1
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>\pard\sa200\sl276\slmult1\f0\fs22\lang7 @echo off\par
Das System kann den angegebenen Pfad nicht finden.
d:\Musik>set "datei=d:\\Musik\\playlist.txt"\par
d:\Musik>powershell -EP Bypass -C "(gc 'd:\\Musik\\playlist.txt') -replace '^([^#].*)','Musik\\$1' | sc 'd:\\Musik\\playlist.txt'"\par
sc : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In Zeile:1 Zeichen:67
... ) -replace '^([^#].*)','Musik\\$1' | sc 'd:\\Musik\\playlist.txt'\par
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Musik\\38 Special:String) [Set-Content], ParameterBindingException+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.SetContentCommand
sc : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In Zeile:1 Zeichen:67
... ) -replace '^([^#].*)','Musik\\$1' | sc 'd:\\Musik\\playlist.txt'\par
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Musik\\Aaron Neville:String) [Set-Content], ParameterBindingException+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.SetContentCommand
d:\Musik>}
Der Befehl "}" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
***
LÖSUNG 04.12.2020, aktualisiert um 12:37 Uhr
LÖSUNG 04.12.2020 um 12:51 Uhr
LÖSUNG 04.12.2020, aktualisiert um 12:55 Uhr
LÖSUNG 04.12.2020 um 13:21 Uhr
Wieder etwas weiter. Es ist zwar "Musik\ " hinzugefügt worden aber leider einiges mehr.
Hast Du noch eine Idee ??
Orginal Datei:
#EXTM3U
#EXTINF:275,38 Special - Second Chance - Pop - Slow
38 Special\Slow\Second Chance - 38 Special - Pop .mp3
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow
Aaron Neville\Slow\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3
Neue Datei:
Musik\{\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
Musik\{\*\generator Riched20 10.0.19041}\viewkind4\uc1
Musik\\pard\sa200\sl276\slmult1\f0\fs22\lang7 #EXTM3U\par
#EXTINF:275,38 Special - Second Chance - Pop - Slow\par
Musik\38 Special\\Slow\\Second Chance - 38 Special - Pop .mp3\par
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow\par
Musik\Aaron Neville\\Slow\\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3\par
Musik\}
Musik\
Hast Du noch eine Idee ??
Orginal Datei:
#EXTM3U
#EXTINF:275,38 Special - Second Chance - Pop - Slow
38 Special\Slow\Second Chance - 38 Special - Pop .mp3
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow
Aaron Neville\Slow\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3
Neue Datei:
Musik\{\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
Musik\{\*\generator Riched20 10.0.19041}\viewkind4\uc1
Musik\\pard\sa200\sl276\slmult1\f0\fs22\lang7 #EXTM3U\par
#EXTINF:275,38 Special - Second Chance - Pop - Slow\par
Musik\38 Special\\Slow\\Second Chance - 38 Special - Pop .mp3\par
#EXTINF:157,Aaron Neville - Crazy Love-Van Morrison - R&B - Slow\par
Musik\Aaron Neville\\Slow\\Crazy Love-Van Morrison - Aaron Neville - R&B .mp3\par
Musik\}
Musik\
LÖSUNG 04.12.2020, aktualisiert um 15:29 Uhr
Kann ich dir sagen warum, deine angeblichen *.M3U Dateien sind keine "echten" Textdateien sondern RTF-Dateien mit Formatierungsanweisungen, d.h. dort bestehen Zeichen zum Großteil aus Escape-Sequenzen Kauderwelsch, einfach mal nachschlagen dann verstehst du warum => https://de.wikipedia.org/wiki/Rich_Text_Format! Da hat wohl wieder ein Noob mit Wordpad rum gespielt ... Wie ich schon sagte Freitaaaag 🐟. Benutze einen vernünftigen Editor oder konvertiere die RTF-Dateien in Plaintext dann geht das auch wie gewünscht.
Ich bin jetzt raus.
Ich bin jetzt raus.
LÖSUNG 04.12.2020 um 18:45 Uhr