Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

.m3u Pfade auslesen und kopieren

Frage Entwicklung Batch & Shell

Mitglied: boehli

boehli (Level 1) - Jetzt verbinden

04.04.2007, aktualisiert 11.04.2007, 8044 Aufrufe, 12 Kommentare

Hallo Zusammen,

und zwar kleines Problem doch irgendwie will es nicht ;)
Batch liest mit einer for schleife aus einer .m3u(Winamp Playlist File) die Pfade aus(c:\relax.m3u) und soll diese nach (c:\mp3\) kopieren.
Ich glaube das Problem ist einfach das die Pfade die darin enthalten sind leerzeichen enthalten.
Weil die dateien die keine enthalten werde nämlich kopiert.

Also wie erweiter ich meine batch, dass das funktioniert ?

FOR /f %%f IN (c:\relax.m3u) DO copy /b %%f "c:\mp3\"


Danke
Mitglied: bastla
04.04.2007 um 18:09 Uhr
Hallo boehli und willkommen im Forum!

Versuch es so:
01.
FOR /f "delims=" %%f IN (c:\relax.m3u) DO copy /b "%%f" "c:\mp3\"
HTH
bastla
Bitte warten ..
Mitglied: boehli
04.04.2007 um 18:18 Uhr
wies einfach funktioniert... Danke

mhh willstes mir erkl
Bitte warten ..
Mitglied: bastla
04.04.2007 um 18:23 Uhr
Hallo boehli!

In Batch gelten zB Leerstelle und Tab standardmäßig als Trennzeichen (siehe "for /?"). Durch die Angabe von "delims=" kann dieses Trennzeichen geändert werden - wenn ich dabei keines angebe (nach dem "=" und vor dem Anführungszeichen steht ja nichts mehr), wird auch nicht getrennt.

Damit hast Du den Pfad/Dateinamen aus der Liste herausbekommen - damit nicht beim "copy"-Befehl gleich wieder die Leerstellen zum "Auseinanderreißen" des Namens führen, wird dieser unter Anführungszeichen gesetzt und damit zusammengehalten.

Grüße
bastla
Bitte warten ..
Mitglied: pulse
04.04.2007 um 18:30 Uhr
Hey, sowas hab ich schon ne weile gesucht!
kannste mir die fertige batch dann mal schicken?^^
Nur würd ich gerne wissen wie er das in dem kompletten ordner machen kann.
Bitte warten ..
Mitglied: Biber
04.04.2007 um 18:38 Uhr
Moin Endzeit,

der komplette Oneliner steht doch schon oben?
Und den letzten Teil der Frage: "Nur w*rd ich gerne wissen wie er das in dem kompletten ordner machen kann." ...kannst Du das bitte ein wenig umformulieren?

Ich versteh es zumindest nicht, aber wenn es zu dem beliebten Thema "Playlist ummuddeln" gehoert, dann sollten wir es ruhig hier behandeln.

Danke
Biber
Bitte warten ..
Mitglied: pulse
04.04.2007 um 18:47 Uhr
Und zwar habe ich in meinen Playlisten immer die Pfade "D:\Eigene Dateien\Eigene Musik\
und dann Unterordner "Alben\Interpret\Albenname\"
und die Playlisten liegen im Ordner "Playlisten".
Nun würd ich gern den Pfad, der automatisch eingetragen wird,
per Batch abändern.
und zwar "D:\Eigene Dateien\Eigene Musik\" in "..\"
Damit es relativ ist und ich nicht immer den gleichen Spaß habe, wenn ich mich z.b. entscheide,
den ordner zu verschieben...dann stimmen die Pfade nicht mehr, ist ja auch logisch
Hoffe das war eine ausreichende Beschreibung
Bitte warten ..
Mitglied: Biber
04.04.2007 um 19:14 Uhr
Na ja, wenns weiter nichts ist...

Wenn Deine .m3u Datei also xx.m3u heisst, dann am CMD-Prompt diese eine Zeile eingeben...
01.
for /f "delims=" %i in (xx.m3u) do @for /f "delims=\ tokens=3,*" %j in ("%i") do @echo ..\%k
wenn das am Bildschirm angezeigte Ergebnis passt, dann noch ein ">>NeueRelativPfadPlaylist.m3u" anhaengen.

Gruss
Biber
P.S. Auch wenn heute zwei Code-Zeilen angezeigt werden - es ist eine.
Bitte warten ..
Mitglied: pulse
04.04.2007 um 19:36 Uhr
also ich wollte eigentlich, dass die batchfile alle dateien durchgeht und in jeder datei schaut ob da die bestimmte Zeichenkette vorhanden is und diese gegebenenfalls ersetzt.
Bitte warten ..
Mitglied: Biber
04.04.2007 um 22:37 Uhr
*seufz*

Dann wickeln wir halt noch ein FOR-Schleifchen drum, was soll's...
Wechseln/Ersetzen per Batch geht nicht sinnvoll.
Von daher mein Vorschlag: zu jeder vorhandenen Playlistxxx.m3u wird im selben Verzeichnis eine PlaylistxxxRELPATH.m3u angelegt.

Dann brauchen wir nicht extra einen Mehrzeiler schreiben.
Am CMD-Prompt (ist wieder eine! Zeile):
01.
for /r "c:\Eigene Dateien\Eigene Musik" %f in (*.m3u) do @for /f "usebackq delims=" %i in ("%f") do @for /f "delims=\ tokens=3,*" %j in ("%i") do @echo ..\%k 
02.
>> "%~dpnfRELPATH%~xf"
Wenn Dir der Einzeiler zu lang zum Eintippseln ist, dann sieht der als (formatierter) Batch-Oneliner so aus:
01.
@FOR /R "c:\Eigene Dateien\Eigene Musik" %%f IN (*.m3u) do @( 
02.
       FOR /F "usebackq delims=" %%i in ("%%f") do @( 
03.
           FOR /F "delims=\ tokens=3,*" %%j in ("%%i") do @echo ..\%%k >> "%%~dpnfRELPATH%%~xf" 
04.
     ))
...wobei Du natürlich auch den ersten FOR /R -Startverzeichnisparameter ("c:\Eigene Dateien\Eigene Musik") ersetzen könntest durch ein %1 und dann den Startpfad als Parameter mitgibst.

Gruss
Biber
[Edit]
Wenn natürlich alle .m3u's direkt im Verzeichnis "....\Eigene Musik" liegen, dann reicht
statt jetzt: @FOR /R "c:\Eigene Dateien\Eigene Musik" %%f IN (*.m3u) DO ....lala
NEU dieses: @FOR %%f IN ("c:\Eigene Dateien\Eigene Musik\*.m3u") DO....lala
[/Edit]
Bitte warten ..
Mitglied: Biber
08.04.2007 um 19:43 Uhr
Moin boehli und Endzeit,

Nachfrage:
die eigentliche Frage von boehli betrachte ich als beantwortet.
Was macht Deine Ergänzungsanfrage, @Endzeit? Schon irgendetwas davon ausprobiert?

Gruss
Biber
Bitte warten ..
Mitglied: pulse
11.04.2007 um 21:27 Uhr
Also ich danke dir erstmal für deine Antwort,
aber ich glaube ich werde mich erstmal mit Batch auseinandersetzen.
Will ja auch verstehen was da passiert,
und nicht nur dass es funktioniert
Aber ich werd mir deine Beitrag speichern und darauf aufbauen.
Bitte warten ..
Mitglied: Biber
11.04.2007 um 21:47 Uhr
Danke für die Rückmeldung, Endzeit,

dann mache ich diesen Beitrag erstmal dicht.
Was auf keinen Fall heißen so, dass ich von Dir oder von Playlisten oder FOR-Anweisungen nie wieder etwas lesen will.

Wenn es also bei Deinem konkreten Problem auch nach Auseinandersetzung mit dem Thema "Batch" noch klemmen sollte, dann eröffne einen neuen Thread in "Batch & Shell".
You're welcome.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VBA: Wert von einer Website (pdf-Dokument) auslesen und in Excel kopieren (16)

Frage von Stern123 zum Thema VB for Applications ...

Batch & Shell
Daten nach dem auslesen per Powershell moven - kopieren - löschen (1)

Frage von Luckyyluck zum Thema Batch & Shell ...

Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...