на главнуюВсе эхи SU.CHAINIK.GENERAL
войти ?

пакетная переименовка файлов

От Alexander A. An (2:5085/109.1) к Vladimir Fyodorov

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Вторник Август 11 2009, 00:31, Vladimir Fyodorov --> Alexander A. An:

VF> Спасибо, конечно, но не годится. Hадо, чтобы сортировка по имени файла
VF> соответствовала времени, то есть вначале должен быть год, потом месяц,
VF> потом день, потом номер дубля.

Это не трудно подправить:


──────────────────────[ Windows Clipboard ]────────────────────────
cls
rem setlocal
set wdir=d:\temp\3
for %%i in (%wdir%\*.*) do (
for /f "tokens=1-5 delims=. " %%j in ("%%~xti") do (
call :copyfile %%i %%j %%k %%l %%n
)

)

goto end


:copyfile

Set /a num=1
set number=00001

if not exist %wdir%\%4_%3_%2-%number%.%5 (
rename %1 %4_%3_%2-%number%.%5
goto :eof
)


:NextNumber
If Exist %wdir%\%4_%3_%2-%number%.%5 (
Set /a num=%num%+1
if %num% LSS 10 (
set number=0000%num%
goto NextNumber
)
if %num% LSS 100 (
set number=000%num%
goto NextNumber
)
if %num% LSS 1000 (
set number=00%num%
goto NextNumber
)
if %num% LSS 10000 (
set number=0%num%
goto NextNumber
)

GoTo NextNumber
)

rename %1 %4_%3_%2-%number%.%5
goto :eof

:end
──────────────────────[ Windows Clipboard ]────────────────────────


Теперь на выходе получаем файлы в формате YYYY_MM_DD-NNNNN.XXX, где XXX - старое расширение файла, NNNNN - пятизначное значение от 00001 до 99999

Первый файл теперь всегда получает конец -00001, раз правильная сортировка важна.

В принципе, счеткик можно увеличить, не ограничиваясь 99999. Это не трудно.

Такое подойдет?

--- <[ ФК Локомотив (М) - Hаш паровоз вперёд летит... ]> ---
* Origin: Мчится тихий огонёк моей души (2:5085/109.1)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://SU.CHAINIK.GENERAL?msgid=2:5085/109.1@Fidonet+4a81173a