4

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

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

Но это не будет переименовывать файлы.

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

Какие-нибудь мысли?

1 ответ1

6

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

  • В пакетных файлах вы должны использовать %%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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .