So benennen Sie die Datei mit CMD „Track ?.mp3“ in „T00?.mp3“ um

So benennen Sie die Datei mit CMD „Track ?.mp3“ in „T00?.mp3“ um

Ich habe mehrere MP3-Dateien wie diese:

Track [number of track].mp3z.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.mp3wird 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).

verwandte Informationen