hacsoft
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ternik Код: rem (c) HACSoft, 2005. :: ВНИМАНИЕ: скрипт переименовывает все файлы и папки в текущей папке и во всех ее подпапках! @echo off setlocal enabledelayedexpansion cls color 0c echo All files will be renamed pause color exit :: Переименовываем папки: set num=0 for /r %%d in (.) do ( set folder!num!=%%d set /a num+=1 ) set /a num-=1 if %num% gtr 9 set prefix1=0 for /l %%i in (%num%,-1,1) do ren "!folder%%i!" %%i 2> nul :: Переименовываем файлы: :files set num=0 for /f "tokens=*" %%f in ('dir /b /s') do ( if not %%~nf==%~n0 ( set /a num+=1 echo %%f if not "%%~xf"=="" ren "%%f" !num!%%~xf 2> nul ) ) | Для запуска удали команду exit. В итоге каждая папка в качестве имени получит порядковый номер: 1, 2, ... И каждый файл тоже. Не советую экспериментировать со скриптом, т.к. если его исполнить, к примеру, в корне диска, то все файлы и папки на диске будут переименованы, восстановить все обратно крайне сложно... Добавлено: Death_INN Собственно, описанная тобой схема - это уже есть алгоритм решения задачи. Вот только тут одна проблема, команда time /t выдает время с точностью до минут. Есть ли возможность считать время с точностью до секунд стандартными средствами cmd? Если в задаче не критично использовать только стандартные средства cmd, то можно написать утилитку, которая будет выдавать время. Т.е. в месте с bat-файлом придется распространять и ее. Это допустимо в данной задаче? |