Здесь (суб) папки (s) является код:Batch File - Переименование файлов на основе родительского имени и имени
for /r %%a in (*.jpg, *.png, *.bmp, *.exe) do (
for /d %%d in (%CD%) do (
set newname=%%~nd%~x1
ren "%%~a" "!newname!%%~Xa"
echo media file in %%~fa renamed to "!newname!%%~Xa"
)
)
Основная проблема заключается в том, что файлы в подпапки в конечном итоге с именем файла в качестве родителя имя каталога. Я запускаю файл bat.
Пример того, что происходит:
C:\parent\name.jpg renamed to C:\parent\parent.jpg
C:\parent\child\name.jpg renamed to C:\parent\child\parent.jpg
C:\parent\child1\child2\name.jpg renamed to C:\parent\child1\child2\parent.jpg
мне нужно:
C:\parent\1.jpg rename to C:\parent\parent.jpg
C:\parent\child\1.jpg rename to C:\parent\child\child.jpg
C:\parent\child1\child2\name.jpg renamed to C:\parent\child1\child2\child2.jpg
Любая помощь?
Хорошо, что сработало отлично в строке кода. Вы хотите немного объяснить команды? –
Спасибо. См. Отредактированный ответ. – foxidrive
Большое вам спасибо. Это очень полезно. –