Dateien via Skript o.ä umbenennen. (mp3 Dateien mit 01.Interpret, 02.Interpret usw.)
Hallo ich bin auf der Suche nach einem Skript der mir sämtliche zahlen aus Dateinamen entfernt, die an den ersten 3 Stellen stehen.
Anbei mal nen Screenshot von meinem Problem

Ich habe keine Ahnung von .bat Dateien oder .vbs oder ähnliches...
Wäre also nett wenn ihr es für "Trottel" erklärt!
Gruß
Anbei mal nen Screenshot von meinem Problem

Ich habe keine Ahnung von .bat Dateien oder .vbs oder ähnliches...
Wäre also nett wenn ihr es für "Trottel" erklärt!
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 09.05.2013 um 21:15:55 Uhr
Dateien via Skript o.ä umbennen...
set /a rgc+=1#885
Content-ID: 206268
Url: https://administrator.de/forum/dateien-via-skript-o-ae-umbenennen-mp3-dateien-mit-01-interpret-02-interpret-usw-206268.html
Ausgedruckt am: 05.04.2025 um 09:04 Uhr
15 Kommentare
Neuester Kommentar
Hallo m.reeger,
mir ist leider auch nix geniales eingefallen. Beschäftige dich doch mal mit "sed", wenn du sowas häufiger vorhast.
Setz den MP3-Ordner, schau dir den Output an und lösch die
Gruss!
mir ist leider auch nix geniales eingefallen. Beschäftige dich doch mal mit "sed", wenn du sowas häufiger vorhast.
@echo off &setlocal
set "start=X:\my\mp3 folder"
pushd "%start%"
for /f "delims=" %%i in ('dir /b /a-d *.mp3^| findstr /rbc:"[0-9][0-9][0-9] - "') do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "nname=!fname:* - =!"
echo ren "!fname!" "!nname!"
endlocal
)
for /f "delims=" %%i in ('dir /b /a-d *.mp3^| findstr /rbc:"[0-9][0-9][0-9]-"') do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "nname=!fname:*-=!"
echo ren "!fname!" "!nname!"
endlocal
)
for /f "delims=" %%i in ('dir /b /a-d *.mp3^| findstr /rbc:"[0-9][0-9]\. "') do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "nname=!fname:*. =!"
echo ren "!fname!" "!nname!"
endlocal
)
for /f "delims=" %%i in ('dir /b /a-d *.mp3^| findstr /rbc:"[0-9][0-9]_"') do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "nname=!fname:*_=!"
echo ren "!fname!" "!nname!"
endlocal
)
for /f "delims=" %%i in ('dir /b /a-d *.mp3^| findstr /rbc:"[0-9]\.[0-9][0-9]_"') do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "nname=!fname:*_=!"
echo ren "!fname!" "!nname!"
endlocal
)
popd
Setz den MP3-Ordner, schau dir den Output an und lösch die
echo
's, wenn es iO ist. Beim Umbenennen können natürlich Doubletten auftreten, dann mosert CMD und benennt diese Datei nicht um.Gruss!
@ Endoro
Das Script (als Beispiel in "G:\NamenBereinigen.vbs" gespeichert) in der CMD-Shell mit
starten.
Solange am Anfang der Zeile 13 ein Apostroph steht, wird nur angezeigt, wie die Namen geändert würden (nur jene, bei denen eine Änderung erforderlich ist). Wenn das Ergebnis gut aussieht, diesen Apostroph vor Zeile 13 entfernen und an den Anfang der Zeile 12 setzen (so wird nix mehr angezeigt, nur mehr umbenannt).
Grüße
bastla
[Edit] Prüfung auf schon vorhandene Dateinamen ergänzt [/Edit]
Beschäftige dich doch mal mit "sed"
Zur Not sollte es auch ein VBScript tun:Ordner = "G:\Musik"
Typ = "mp3" 'in Kleinbuchstaben
Set rE = New RegExp
rE.Pattern = "^\d+[ -._]+" 'zu entfernende Zeichenfolge als Regular Expression (\d = Ziffer)
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Datei In fso.GetFolder(Ordner).Files
DName = Datei.Name 'Dateinamen zwischenspeichern
If LCase(fso.GetExtensionName(DName)) = Typ Then 'nur gewünschten Typ verarbeiten
NameNeu = rE.Replace(DName, "") 'unerwünschte Zeichen entfernen
If NameNeu <> DName Then If Not fso.FileExists(Ordner & "\" & NameNeu) Then WScript.Echo """" & DName & """ --> """ & NameNeu & """" 'Demo-Ausgabe
'If NameNeu <> DName Then If Not fso.FileExists(Ordner & "\" & NameNeu) Then Datei.Name = NameNeu 'Namen wirklich ändern
End If
Next
cscript G:\NamenBereinigen.vbs
Solange am Anfang der Zeile 13 ein Apostroph steht, wird nur angezeigt, wie die Namen geändert würden (nur jene, bei denen eine Änderung erforderlich ist). Wenn das Ergebnis gut aussieht, diesen Apostroph vor Zeile 13 entfernen und an den Anfang der Zeile 12 setzen (so wird nix mehr angezeigt, nur mehr umbenannt).
Grüße
bastla
[Edit] Prüfung auf schon vorhandene Dateinamen ergänzt [/Edit]