![]() |
Добавление к имени файла имя папки
Нужен батник который добавляет к имени файла имя папки где он находится
например: есть c:\Down\RRR\1.jpg надо c:\Down\RRR_1.jpg Папка Down основная, в неё записываются разные папки и файлы. при одинаковых именах добавлять цифру RRR_1(1).jpg, желательно контроль длины имени файла (<260 символов). Опустевшие папки удалять. Заранее спасибо. |
Arsenik77, возможны ошибки, не тестировал:
Код:
@echo off |
не удаляет пустые папки если там были другие папки (можно прикрутить это )
при одинаковых именах просто заменяет файлы, надо чтоб переименовывал. |
Arsenik77,
На счет файлов не знаю, все отрабатывает корректно, по крайней мере на тестовой папке. Для удаления директорий надо исправить: Код:
for /f "tokens=*" %%i in (' "dir /b /s /a-d | sort /r" ') do call:1 "%%~dpi." "%%~nxi" "%%i" Код:
@echo off |
на счет файлов понял, а что исправить (непонятно)??
|
Arsenik77,
Просто скопируй второй вариант и замени все "C:\Down" если у тебя другой путь. |
Папки и подпапки все равно не удаляет.
При каждом новом запуске к имени добавляется "down" это не хорошо (батник будет запускаться каждый час), надо чтоб батник отрабатывал только папки и подпапки в "Down", а сами файлы находящиеся в корне ("Down") не трогал. Этот хорошо удаляет все папки, но только я не знаю куда его прикрутить. Цитата:
|
Цитата:
Код:
@echo off |
С переименовкой все хорошо!
Скажите куда прописать. Код:
:again |
Arsenik77,
Просто скопируй второй вариант, полностью. Я там исправил переименовку, и удаление пустых папок. Если не получится, то будем думать, как решить проблему. Твой пример с удалением не очень подходит. PS. Посмотрел, вообще можно и так. Замени 2>nul rd "%~dpnx1" На эти две строчки (:again) |
Не удаляет папки.
|
Цитата:
|
странно у меня тоже win7 , даже заменив эти две строчки, он не удаляет папки, какие-то непонятные глюки.
Ладно, считаю задачу решенной! Спасибо!! |
Время: 01:53. |
Время: 01:53.
© OSzone.net 2001-