|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Добавление к имени файла имя папки |
|
|
CMD/BAT - [решено] Добавление к имени файла имя папки
|
Пользователь Сообщения: 72 |
Нужен батник который добавляет к имени файла имя папки где он находится
например: есть c:\Down\RRR\1.jpg надо c:\Down\RRR_1.jpg Папка Down основная, в неё записываются разные папки и файлы. при одинаковых именах добавлять цифру RRR_1(1).jpg, желательно контроль длины имени файла (<260 символов). Опустевшие папки удалять. Заранее спасибо. |
|
Отправлено: 14:22, 13-08-2011 |
Ветеран Сообщения: 1758
|
Arsenik77, возможны ошибки, не тестировал:
|
Отправлено: 15:48, 13-08-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать не удаляет пустые папки если там были другие папки (можно прикрутить это )
при одинаковых именах просто заменяет файлы, надо чтоб переименовывал. |
Отправлено: 18:38, 13-08-2011 | #3 |
Ветеран Сообщения: 1758
|
Arsenik77,
На счет файлов не знаю, все отрабатывает корректно, по крайней мере на тестовой папке. Для удаления директорий надо исправить: ЗЫ. Разобрался, что значит замещает, у меня все тестовые файлы были одинаковые. Исправил: |
Последний раз редактировалось Foreigner, 13-08-2011 в 19:15. Отправлено: 19:02, 13-08-2011 | #4 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать на счет файлов понял, а что исправить (непонятно)??
|
|
Отправлено: 19:17, 13-08-2011 | #5 |
Ветеран Сообщения: 1758
|
Arsenik77,
Просто скопируй второй вариант и замени все "C:\Down" если у тебя другой путь. |
Отправлено: 19:21, 13-08-2011 | #6 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Папки и подпапки все равно не удаляет.
При каждом новом запуске к имени добавляется "down" это не хорошо (батник будет запускаться каждый час), надо чтоб батник отрабатывал только папки и подпапки в "Down", а сами файлы находящиеся в корне ("Down") не трогал. Этот хорошо удаляет все папки, но только я не знаю куда его прикрутить. Цитата:
|
|
Отправлено: 19:33, 13-08-2011 | #7 |
Ветеран Сообщения: 1758
|
Цитата Arsenik77:
@echo off setlocal for /d %%i in ("C:\down\*") do ( for /f "tokens=*" %%j in (' "dir /b /s /a-d "%%i" | sort /r" ') do call:1 "%%~dpj." "%%~nxj" "%%j" ) popd goto:eof :1 set "file=%~nx1_%~2" :2 set /a cnt+=1 if exist "C:\Down\%file%" set "file=%~nx1_%~n2(%cnt%)%~x2" && goto:2 move %3 "C:\Down\%file%" 2>nul rd "%~dpnx1" set "cnt=" |
|
Последний раз редактировалось Foreigner, 13-08-2011 в 19:55. Отправлено: 19:42, 13-08-2011 | #8 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:47, 13-08-2011 | #9 |
Ветеран Сообщения: 1758
|
Arsenik77,
Просто скопируй второй вариант, полностью. Я там исправил переименовку, и удаление пустых папок. Если не получится, то будем думать, как решить проблему. Твой пример с удалением не очень подходит. PS. Посмотрел, вообще можно и так. Замени 2>nul rd "%~dpnx1" На эти две строчки (:again) |
Последний раз редактировалось Foreigner, 13-08-2011 в 20:06. Отправлено: 19:59, 13-08-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование имени папки/файла в буфер обмена | cpp.svet | Скриптовые языки администрирования Windows | 3 | 06-07-2011 19:16 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 | |
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" | permas | Microsoft Windows 2000/XP | 2 | 20-02-2010 19:30 | |
Как переименовать имя аккаунта в XP с изменением имени его папки и других файлов. | Alikber | Microsoft Windows 2000/XP | 4 | 06-03-2006 00:15 | |
Как получить имя текущего пользователя для использования его в имени файла | Denchik | Автоматическая установка Windows 2000/XP/2003 | 1 | 25-01-2006 22:33 |
|