Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


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

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


mwz,
Цитата:
тут как-то задавал чисто практический для меня вопрос: как к тысяче и более файлов приписать случайный числовой префикс
Уже не актуально?
В дополнение к решенной 5 лет назад задаче, еще вариант
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In\Alll"
	Set "Mask=*.*"

	Set /A Max=10000

	Set /A N=%Max%
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:-D /T:C`) DO Call :Count "%%~nxf"
	FOR /F "usebackq tokens=1* delims==" %%f IN (`Set "@@"`) DO Call :MyRen "%BoxIn%\%%g" "%%g" %Max%

	Set /A N=%Max%
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:N`) DO Call :Count "%%~nxf"
	Set /A N=%Max%
	FOR /F "usebackq tokens=1* delims==" %%f IN (`Set "@@"`) DO Call :MyRen2 "%BoxIn%\%%g" "%%g" %Max%
pause
GoTo :Eof

:Count
	Set /A N+=1
	Set "@@%N%=%~1"
GoTo :Eof

:MyRen
	Set /A j=%Random%+%3
	Ren %1 "%j%_%~2"
Exit /B 0

:MyRen2
	Set /A N+=1
	Set "New=%~2"
	Ren %1 "%N%_%New:*_=%"
Exit /B 0
Если не требуется, чтобы префиксы никак не дублировались, красные строки можно удалить

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 05-01-2019 в 13:48.


Отправлено: 09:06, 05-01-2019 | #8