Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименовать каждый первый файл в папках

Ответить
Настройки темы
CMD/BAT - [решено] Переименовать каждый первый файл в папках

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Ситуация: есть пятьсот папок. В каждой папке по три файла. Из них третий файл имеет одинаковой имя: ЯЯЯ.jpg - это для того, чтобы он был последним из этих трёх. Соответственно, остаётся по два файла. Что необходимо сделать: надо написать скрипт для рекурсивного обхода всех папок для переименования каждого первого/второго файла во всех папках. Причём, файлы отсортированы в алфавитном порядке латиницей. Подскажите пожалуйста решение.

Отправлено: 17:13, 22-12-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Переименования во что?

Отправлено: 17:54, 22-12-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Без разницы. Можно, чтобы было одно имя. К примеру, в "1". По примеру отсюда: http://forum.oszone.net/thread-269086.html разобрался как вывести в файл имя первого файла. А как его переименовать? То есть, надо переименовать все первые файлы допустим в абракадабра.jpg

Отправлено: 17:59, 22-12-2015 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ничоси!! Огромное спасибо. То, что надо!

Отправлено: 19:18, 22-12-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименовать каждый первый файл в папках

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход