Переименовать каждый первый файл в папках
Добрый день. Ситуация: есть пятьсот папок. В каждой папке по три файла. Из них третий файл имеет одинаковой имя: ЯЯЯ.jpg - это для того, чтобы он был последним из этих трёх. Соответственно, остаётся по два файла. Что необходимо сделать: надо написать скрипт для рекурсивного обхода всех папок для переименования каждого первого/второго файла во всех папках. Причём, файлы отсортированы в алфавитном порядке латиницей. Подскажите пожалуйста решение.
|
Без разницы. Можно, чтобы было одно имя. К примеру, в "1". По примеру отсюда: http://forum.oszone.net/thread-269086.html разобрался как вывести в файл имя первого файла. А как его переименовать? То есть, надо переименовать все первые файлы допустим в абракадабра.jpg
|
Код:
@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
|
Ничоси!! Огромное спасибо. То, что надо!
|
Время: 22:48.
© OSzone.net 2001-