Добавить в начало имени файла

Добавить в начало имени файла

Я пытаюсь добавить слово [Replay] ко всем mp3-файлам в папке, используя пакетный файл, например, такой:

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

Но он не переименовывает файлы.

все примеры, которые я пробовал в Google, добавляют слово, но накладываются на следующие символы в имени файла, мне просто нужно добавить слово в начало, не накладывая буквы друг на друга.

Есть предположения?

решение1

В вашем пакетном файле есть три проблемы:

  • В пакетных файлах необходимо использовать %%aвместо %a.

  • %%aбудет содержать полный путь, а не только имя файла.

  • Переименование не будет выполнено, если в имени файла есть пробелы.

В целом, я бы также рекомендовал оставить echoего включенным во время устранения неполадок.

Попробуйте вместо этого следующее:

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

Если это переименовывает файлы дважды, forэто чтение записей каталога по мере их поступления. В качестве обходного пути вы можете сохранить список во временном файле:

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

Связанный контент