bat: рекурсивное переименование файлов

bat: рекурсивное переименование файлов

Я хотел бы рекурсивно переименовать все файлы *.doc в определенном разделе в *.txt. Я пробовал следующее, но безуспешно...

@echo off
echo +-------------------------------------------+
echo :         exec cmd in every subdir          :
echo +-------------------------------------------+

FOR /R ".\" %%F IN (.) DO (
    ren "*.doc" "*.txt"
)

@pause

Что я делаю не так?


Обновление: Мне это помогло... Я запускаю это, нажав на файл в MS File Explorer (Win7) и устанавливаю .bat как исполняемый файл. Я не пробовал в командной строке cmd - интересно, вызывает ли это разницу?

@echo off

FOR /R ".\" %%F IN (.) DO (
 ren "%%F\*.doc" "*.txt"
)
@pause

решение1

У вас есть несколько небольших ошибок в пакетном файле.

Вот версия, которая работает из командной строки:

FOR /R "." %F IN (.) DO ren "%F\*.doc" "*.txt"

И в .batфайле:

FOR /R "." %%F IN (.) DO ren "%%F\*.doc" "*.txt"

Протестировано на Windows 7 64-бит:

введите описание изображения здесь

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