Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


Contributor


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

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


Цитата megaloman:
брать имя файл.раширение и приделывать к нему префикс_файл.раширение.рандом »
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Pref=Pr"
	Set /A N=100
	Set "Delim=_"

	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.*" /B /O:N /A:-D ^|FINDSTR /I /V /R /C:"^%Pref%[0-9]*%Delim%.*$"`) DO (
		Set /A N+=1
		Call :RandStr 8 "RStr"
		Call Ren "%BoxIn%\%%f" "%Pref%%%N:~1%%%Delim%%%f.%%RStr%%"
	)
Pause
Exit /B

:RandStr
	SetLocal EnableDelayedExpansion

	Set "Symb=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	Set /A N=36

	Set /A min=0, max=%N%-1

	Set "Out="
	Set /A j=!random!
	FOR /L %%i IN (1,1,%1) DO (
		Set /A j=%min%+^(%max%-%min%+1^)*!random!/32768
		Call Set "Out=!Out!%%Symb:~!j!,1%%"
	)
	EndLocal DisableDelayedExpansion &Set "%~2=%Out%"
Exit /B
Задайте свой путь в Set "BoxIn=Z:\Box_In", префикс Set "Pref=Pr", число знаков в номере префикса Set /A N=100 (здесь будет 2 знака), разделитель префикса и имени Set "Delim=_"
В процедурке
Call :RandStr 8 "RStr"
8 - число генерируемых случайных символов, можете его менять
Противу своего ощущения, ежели очень хочется уничтожить исходное расширение, вот вариант строки с переименованием
Код: Выделить весь код
		Call Ren "%BoxIn%\%%f" "%Pref%%%N:~1%%%Delim%%%~nf.%%RStr%%"

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


Последний раз редактировалось megaloman, 29-11-2020 в 22:39.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:02, 29-11-2020 | #7