Ich habe mehrere MP3-Dateien wie diese:
Track [number of track].mp3
z.B. Track 1.mp3
-Track 11.mp3
Ich möchte sie wie folgt umbenennen:
T00[number of track]
z.B. T001.mp3
-T011.mp3
Ich habe versucht, die Titel 1-9 folgendermaßen umzubenennen:
ren "Track ?.mp3" "T00 ?.mp3"
aber ich habe Platz im Dateinamen ( T00 1.mp3
)
Update: Ich versuche, den Code zu schreiben, um Leerzeichen zu entfernen. Dies ist mein Code
@echo off
setlocal enabledelayedexpansion
for /r %%G in ("T00 ?.mp3") do (
pause
echo -----------------------In loop----------------------------
echo Working with "%%G"
pause
set str=%%G
echo str is = "%str%"
pause
set str=%str: =0% //replace " " with 0
echo 2str is = "%str%"
pause
ren "%%~G" "%str%"
)
Die Nachricht, die ich erhalten habe, lautet:
-----------------------In loop----------------------------
working with "C:\test\T00 1.mp3"
str = ""
2str = ""
A duplicate file name exists, or the file
cannot be found.
.
.
.
Ich weiß nicht, was ich falsch gemacht habe. Dies ist das erste Mal, dass ich Batch Script verwende.
Antwort1
Verwenden von PowerShell mitRegex ersetzenUndFormatzeichenfolge
$strPath = "C:\my\folder\*.mp3"
Get-Childitem $strPath | ForEach-Object {
$onlyNumbers = $_.Basename -replace ".*\D+",""
$WithZeros = "{0:D3}" -f [int]$onlyNumbers
$fileName = "T$WithZeros.mp3"
Rename-Item $_ $fileName
}
Die wichtigsten Teile sind, -replace "^\D+",""
dass alle Nicht-Ziffern vom Anfang des Dateinamens (aber ohne die Erweiterung) gesucht und entfernt werden. Zweitens hängt das Skript mit so viele Nullen wie nötig an "{0:D3}" -f
. Der Rest ist einfach.
Lesenbeide verknüpftQuellen, wenn Sie mehr wissen möchten.
Old name New name
Track 1.mp3 T001.mp3
Track 11.mp3 T011.mp3
Track 111.mp3 T111.mp3
Bearbeiten:Kleiner RegEx-Fehler behoben. Aus Before 99 ballons 01.mp3
wird T9901.mp3
.
Jetzt ist es01 » 001 » T001.mp3
Antwort2
Wenn Sie Ihr Problem mit Linux oder Mac OSX lösen möchten, haben Sie folgende Möglichkeiten:
count=1
for i in $(ls -v); do
number=$(printf "%05d" $count)
((count++))
mv $i T00$number.mp3
done
Ich habe es an 25 Dateien getestet, die ich zuvor mit diesem Befehl erstellt habe
for ((i=1; i<=25; i++)); do touch "Track $i.mp3"; done
Antwort3
Falls das hilft: Total Commander (Windows) verfügt über ein großartiges Tool zum Umbenennen mehrerer Dateien (wählen Sie die gewünschten Dateien aus und drücken Sie dann Strg+M).