An den Anfang des Dateinamens anhängen

An den Anfang des Dateinamens anhängen

Ich versuche, mit einer Batchdatei wie der folgenden allen MP3-Dateien in einem Ordner das Wort [Replay] hinzuzufügen:

@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a

Die Dateien werden jedoch nicht umbenannt.

Alle Beispiele, die ich beim Googeln ausprobiert habe, hängen das Wort an, überschreiben aber die nächsten Zeichen im Dateinamen. Ich muss das Wort nur am Anfang hinzufügen, ohne dass Buchstaben überschrieben werden.

Irgendwelche Gedanken?

Antwort1

Es gibt drei Probleme mit Ihrer Batchdatei:

  • In Batchdateien müssen Sie %%aanstelle von verwenden %a.

  • %%aenthält den vollständigen Pfad, nicht nur den Dateinamen.

  • Wenn der Dateiname Leerzeichen enthält, schlägt die Umbenennung fehl.

Generell würde ich auch empfehlen, die echoFunktion während der Fehlerbehebung eingeschaltet zu lassen.

Versuchen Sie stattdessen Folgendes:

cd /d c:\folder
for %%a in (*.mp3) do ren "%%a" "[Replay]%%a"

Wenn das Umbenennen der Dateien zweimal erfolgt, forwerden die Verzeichniseinträge dabei eingelesen. Als Workaround können Sie die Liste in einer temporären Datei speichern:

cd /d c:\folder
dir /b *.mp3 > temp
for /f "delims=" %%a in (temp) do ren "%%a" "[Replay]%%a"
del temp

verwandte Informationen