Я пытаюсь добавить слово [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