corraggiouno
Goto Top

Abschneiden per Batch - script

Hi,

habe in meinem Ordner "playlist" einige mp3-dateien. Vor der Bezeichnung der Band bzw. des Titels befindet sich eine Nummer. Da ich ziemlich viele mp3 - dateien habe, möchte ich ein Batch-script bauen, dass die zahlen vorne abschneidet.
So müsste ich jede Datei anklicken und umbennen.
Hat da jemand eine Idee, wie man das machen könnte?
Kommentar vom Moderator Biber am May 07, 2010 um 12:07:15 Uhr
So müsste ich jede Datei anklicken und umbennen.
Set /a rgc+=1
672

Content-Key: 142402

Url: https://administrator.de/contentid/142402

Printed on: April 18, 2024 at 12:04 o'clock

Member: bastla
bastla May 07, 2010 at 12:25:05 (UTC)
Goto Top
Hallo Corraggiouno!
Hat da jemand eine Idee, wie man das machen könnte?
Wenn ich auch noch wüsste, wie so ein Dateiname komplett aussieht ...

Grüße
bastla
Member: Corraggiouno
Corraggiouno May 07, 2010 at 12:30:19 (UTC)
Goto Top
oh ja,

ein Bsp:

01 - Band - Titel.mp3

so nun hätte ich gerne die ersten 5 Zeichen abgeschnitten!!
Member: bastla
bastla May 07, 2010 at 12:43:18 (UTC)
Goto Top
Hallo Corragiouno!

Ich würde das gar nicht auf 5 Zeichen festlegen, sondern den Teil vor dem ersten " - " entfernen - etwa so:
for /f "delims=" %i in ('dir /b *.mp3') do @for /f "tokens=1* delims=- " %a in ("%i") do @echo ren "%i" "%b"
Das "echo" vor dem "ren" soll ein gefahrloses Testen ermöglichen, da so die Umbenenn-Befehle nur angezeigt werden. In einem Batch wäre jedes der vorkommenden Prozentzeichen zu verdoppeln.

Grüße
bastla
Member: miniversum
miniversum May 07, 2010 at 12:46:52 (UTC)
Goto Top
ungestestet ungefär so:
FOR /F "tokens=1-2,3* delims= " %i in ('dir /b *.mp3') do @echo ren "%i %j" "%j"
Bitte nochmal in der Hilfe zum for Befehl nachsehen...
Mitglied: 77559
77559 May 07, 2010 at 13:13:15 (UTC)
Goto Top
Zitat von @bastla:
Ich würde das gar nicht auf 5 Zeichen festlegen, sondern den Teil vor dem ersten " - " entfernen - etwa so:
Um nur die gewünschten Nummern am Anfang zu entfernen würd ich noch ein ^|findstr "^[0-9]" hinter den Dir setzen.
for /f "delims=" %i in ('dir /b *.mp3 ^|findstr "^[0-9]"') do @for /f "tokens=1* delims=- " %a in ("%i") do @echo ren "%i" "%b"

Gruß
Lotpings
Member: bastla
bastla May 07, 2010 at 13:52:56 (UTC)
Goto Top
@77559
Um nur die gewünschten Nummern am Anfang zu entfernen würd ich noch ein ^|findstr "^[0-9]" hinter den Dir setzen.
Du hast ja so recht face-smile - dann kann der Batch auch relativ guten Gewissens mehrmals drüberlaufen (und wenn's dann etwa "50 Cent" erwischt, kann Coraggiouno hoffentlich auch damit leben face-wink) ...
Ansonsten würde es sich in diesem Fall vielleicht doch anbieten, auf eines der vielen MP3-Tagger-Tools zurückzugreifen (und zB zunächst per "Dateiname --> Tag" die Tags entsprechend zu setzen und dann in die umgekehrte Richtung den gewünschten Dateinamen aus den Tag-Informationen zu erzeugen) ...

Grüße
bastla
Member: bankaifan
bankaifan May 07, 2010 at 14:06:39 (UTC)
Goto Top
War das jetzt Ironie oder Ernst mit dem findstr?

@Biber

So müsste ich jede Datei anklicken und umbennen.

Set /a rgc+=1
672

Hab ich neulich schonmal von dir so gesehen...kann mir das vllt jmd erklären wozu man das nimmt und was es bewirkt und so.

In der Set-Hilfe steht dass das /a für Ausdruck ist aber den rest check ich ned so ganz
Member: Biber
Biber May 07, 2010 at 15:44:12 (UTC)
Goto Top
[OT]
Moin bankaifan,

der Variable %rgc% wirst du hier im Bereich "Batch & Shell" noch oft begegnen.

Mit diesem running gag counter werden die mehr oder weniger kreativen Schreibweisen des völlig unkomplizierten Wortes "Umbenennen" gezählt.
Aus mir nicht nachvollziehbaren Gründen sind da den meisten Synapsen wohl zu viele "n"s und "e"s auf zu kleinem Raum zu gehäuft vorhanden.

Jedenfalls versucht das handelsübliche Kleinhirn dieses Wort immer auf das Wesentliche einzudampfen, nämlich "Umbennen".
Nicht nur hier im Forum (frag mal die Forumssuche), sondern mindestens landesweit. Frag mal eine Suchmaschine.
Ist auch in diversen Applikationen enthalten, z.B. in WinRar oder diversen FileCommandern.

Vor Corraggiounos diesbezüglichen Beitrag stand der running gag counter jedenfalls auf 671 dokumentierten "Umbenner"-Vorkommnissen hier im Forum.

Mit "Set /a rgc+=1" wurde er um 1 erhöht; Ergebnis wie angezeigt 672.

Näheres zur rgc-Problematik in den FAQ Wird es einen numerischen Überlauf der Variablen rgc geben?.

Grüße
Biber
[OT]
Member: bankaifan
bankaifan May 07, 2010 at 15:54:40 (UTC)
Goto Top
In kurzfassung...das der Zähler dafür, wie oft ein Beitrag, bei dem es um "Umbennen" geht erstellt wurde ... lol XD

Danke für deine Erklärung...aber denn schaffen wir schonnoch auf 1000
Mitglied: 77559
77559 May 07, 2010 at 16:13:42 (UTC)
Goto Top
Zitat von @bankaifan:
War das jetzt Ironie oder Ernst mit dem findstr?^^
Nö, probiere die Zeile doch einfach mal ungefähdet (solange der Echo drin ist) aus.

@bastla, ich stimme dir ja mit dem mp3-Tagger zu, ich arbeite auch ständig mit mehreren (u.a. tgf tag.exe) - aber das setzt ja voraus das man eine sorgfältig "benamste" Sammlung haben will und das konnte ich jetzt dem Tenor des OP nicht unbedingt entnehmen.

Gruß
LotPings
Member: bastla
bastla May 07, 2010 at 17:18:01 (UTC)
Goto Top
@77559
aber das setzt ja voraus das man eine sorgfältig "benamste" Sammlung haben will und das konnte ich jetzt dem Tenor des OP nicht unbedingt entnehmen.
Und selbst wenn nicht, würde das Übernehmen der Namensbestandteile (und wenn es hier keine Systematik gäbe, wäre der Gedanke, einen Batch über alle Dateien zu jagen ja ziemlich abwegig) in die Tags zumindest die Basis für das nachfolgende Umbenennen (eben anhand der so entstandenen Tags) schaffen.

Grüße
bastla
Member: pieh-ejdsch
pieh-ejdsch May 08, 2010 at 15:48:11 (UTC)
Goto Top
(und wenn's dann etwa "50 Cent" erwischt, ...
Da würd ich es so machen...

@for %i in ("*.mp3") do @for /f "tokens=1,2,*" %a in ("%i") do @if "%b"=="-" for /f "delims=0123456789" %d in ("%a ") do @if "%d"==" " @echo ren "%i" "%c"  

Gruß Phil