Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переименовать каждый первый файл в папках (http://forum.oszone.net/showthread.php?t=309495)

MI-5 22-12-2015 17:13 2587436

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

Iska 22-12-2015 17:54 2587443

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

MI-5 22-12-2015 17:59 2587447

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

Georgio 22-12-2015 18:14 2587450

Код:

@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


MI-5 22-12-2015 19:18 2587468

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


Время: 22:48.

Время: 22:48.
© OSzone.net 2001-