|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименовать каждый первый файл в папках |
|
CMD/BAT - [решено] Переименовать каждый первый файл в папках
|
Новый участник Сообщения: 16 |
Добрый день. Ситуация: есть пятьсот папок. В каждой папке по три файла. Из них третий файл имеет одинаковой имя: ЯЯЯ.jpg - это для того, чтобы он был последним из этих трёх. Соответственно, остаётся по два файла. Что необходимо сделать: надо написать скрипт для рекурсивного обхода всех папок для переименования каждого первого/второго файла во всех папках. Причём, файлы отсортированы в алфавитном порядке латиницей. Подскажите пожалуйста решение.
|
|
Отправлено: 17:13, 22-12-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Переименования во что?
|
Отправлено: 17:54, 22-12-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Без разницы. Можно, чтобы было одно имя. К примеру, в "1". По примеру отсюда: http://forum.oszone.net/thread-269086.html разобрался как вывести в файл имя первого файла. А как его переименовать? То есть, надо переименовать все первые файлы допустим в абракадабра.jpg
|
Отправлено: 17:59, 22-12-2015 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off set "folder=C:\Test" set "name1=новое имя для 1-го файла" :: Если 1-ый файл не надо переименовывать, тогда :: set "name1=" set "name2=новое имя для 2-го файла" :: Если 2-ой файл не надо переименовывать, тогда :: set "name2=" pushd "%folder%"|| exit/b 1 for /d %%i in (*) do ( pushd "%%i"&& ( setlocal for /f "skip=1 delims=" %%j in (' 2^>nul dir/a-d/b/o-n ') do ( if not defined bool1 ( if not defined bool2 ( if defined name2 ( rem Переименовываем 2-ой файл: ren "%%j" "%name2%%%~xj" ) set bool2=true ) else ( if defined name1 ( rem Переименовываем 1-ый файл: ren "%%j" "%name1%%%~xj" ) set bool1=true ) ) ) endlocal popd ) ) popd exit/b 0 |
Последний раз редактировалось Georgio, 22-12-2015 в 19:07. Отправлено: 18:14, 22-12-2015 | #4 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Ничоси!! Огромное спасибо. То, что надо!
|
|
Отправлено: 19:18, 22-12-2015 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Вывод в файл имен последних файлов в папках | ivanxam | Скриптовые языки администрирования Windows | 2 | 01-10-2013 13:26 | |
CMD/BAT - [решено] Переименовать файл | Mikhail_R | Скриптовые языки администрирования Windows | 8 | 21-03-2013 09:35 | |
BSOD - не могу переименовать файл | alex1311 | Хочу все знать | 11 | 04-02-2012 19:13 | |
Переименовать файл в Seven x64. Как? | Pozia | AutoIt | 1 | 04-11-2010 23:39 | |
[решено] Переименовать файл | cra5h_ | AutoIt | 12 | 11-01-2010 16:58 |
|