10

Следующая команда изменяет только имена файлов, но не папок.

for %a in (*) do ren "%a" "00_%a"

2 ответа2

11

Следующая команда изменяет только имена файлов, но не папок.

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 в своем ответе, чтобы добавить "текст" в конец нескольких имен файлов:


Дальнейшее чтение

0

Чтобы выполнить этот цикл 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.

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