Ответы:
for %a in (*) do ren "%a" "00_%a"
Заметки:
for
как указано выше, не рекомендуется.Используйте следующее в cmd
оболочке:
for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"
В пакетном файле (заменить %
на %%
):
for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"
Замечания:
Очень важно, чтобы вы использовали,
FOR /F
а не простоFOR
.Эта
FOR /F
команда собирает весь результатDIR
команды до того, как она начнет итерацию, тогда как простаяFOR
начинает итерацию после заполнения внутреннего буфера, что повышает риск переименования одного и того же файла несколько раз.
как советовал dbenham в своем ответе, чтобы добавить «текст» в конец нескольких имен файлов :
Чтобы выполнить этот цикл For для папок (каталогов) вместо файлов, просто включите /D
переключатель.
for /D %a in (*) do ren "%a" "00_%a"
От for /?
:
FOR / D% переменная IN (set) команда DO [параметры-команды]
If set contains wildcards, then specifies to match against directory names instead of file names.
ren
работает на папках. Ограничение заключается в том, что «вы не можете указать другой диск или путь для цели».
Ren
.
for /d
может также возникнуть проблема с попыткой обработки значений несколько раз (см. Также мой ответ).