Freem, Вы хотели получить файлы рандомного размера с рандомными данными и именами.
Предлагаю бесполезный батник, так как он работает слишком долго, но делает файлы с рандомным заполнением.
Код:
@Echo Off
cls
Set /A NFiles=3
Set /A MinSkb=2
Set /A MaxSkb=5
Set "BoxOut=Z:\Box_Out"
Set "Symb=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЧЧШЩЪЫЬЭЮЯ1234567890 "
Set /A MinS=%MinSkb%*1024
Set /A MaxS=%MaxSkb%*1024
Set /A Nstr=2500
Set /A MinName=8
Set /A MaxName=16
SetLocal EnableExtensions EnableDelayedExpansion
Call :LenString "%Symb%" "NSymb"
FOR /L %%x IN (1,1,%NFiles%) DO Call :Make
rem pause
GoTo :Eof
:Make
Set /A "iSize=%random%%%(MaxS-MinS+1)+MinS"
Set /A "nName=%random%%%(MaxName-MinName+1)+MinName"
Set "iNFile="
FOR /L %%i IN (1,1,%nName%) DO (
Set /A iSymb=!Random!%%%NSymb%
Call Set "S1=%%Symb:~!iSymb!,1%%"
Set "iNFile=!iNFile!!S1!"
)
Set /A All=0
Set /A istr=0
Set "Str="
FOR /L %%i IN (1,1,!iSize!) DO (
Set /A iSymb=!Random!%%%NSymb%
Call Set "S1=%%Symb:~!iSymb!,1%%"
Set "Str=!Str!!S1!"
Set /A All+=1
If !All!==!iSize! (
<Nul Set /P $V=!Str!>>"%BoxOut%\!iNFile!"
rem Echo == !iNFile! ===== !MinSkb! !MaxSkb! !iSize! !istr! !All!
GoTo :Eof
)
Set /A istr+=1
If !istr!==%Nstr% (
<Nul Set /P $V=!Str!>>"%BoxOut%\!iNFile!"
rem Echo ++ !iNFile! +++++ !MinSkb! !MaxSkb! !iSize! !istr! !All!
Set /A istr=0
Set "Str="
)
)
GoTo :Eof
rem Длина строки "%1" в переменную с именем "%2"
:LenString
Set /A %~2=-1
Set "$$$$$$=%~1"
FOR /L %%i IN (0,1,9999) DO (
Call Set "ii=%%$$$$$$:~%%i,1%%"
If Not "!ii!"=="" (Set %~2=%%i) Else (GoTo :Continue)
)
:Continue
Set /A %~2+=1
GoTo :Eof
Вот батник, который формирует более разнообразные имена, чем у уважаемого alpap, но он существенно длинее. Содержимое, увы, как и у alpap, совершенно неслучайное
Код:
@Echo Off
cls
Set /A NFiles=3
Set /A MinSkb=10
Set /A MaxSkb=50
Set "BoxOut=Z:\Box_Out"
Set "Symb=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЧЧШЩЪЫЬЭЮЯ1234567890 "
Set /A MinS=%MinSkb%*1024
Set /A MaxS=%MaxSkb%*1024
Set /A Nstr=2500
Set /A MinName=8
Set /A MaxName=16
SetLocal EnableExtensions EnableDelayedExpansion
Call :LenString "%Symb%" "NSymb"
FOR /L %%x IN (1,1,%NFiles%) DO Call :Make
rem pause
GoTo :Eof
:Make
FOR /L %%i IN (1,1,10) DO Set /A "iSize=!random!%%(MaxS-MinS+1)+MinS"
FOR /L %%i IN (1,1,10) DO Set /A "nName=!random!%%(MaxName-MinName+1)+MinName"
Set "iNFile="
FOR /L %%i IN (1,1,%nName%) DO (
Set /A iSymb=!Random!%%%NSymb%
Call Set "S1=%%Symb:~!iSymb!,1%%"
Set "iNFile=!iNFile!!S1!"
)
fsutil file createnew "%BoxOut%\!iNFile!" !iSize! >nul
GoTo :Eof
rem Длина строки "%1" в переменную с именем "%2"
:LenString
Set /A %~2=-1
Set "$$$$$$=%~1"
FOR /L %%i IN (0,1,9999) DO (
Call Set "ii=%%$$$$$$:~%%i,1%%"
If Not "!ii!"=="" (Set %~2=%%i) Else (GoTo :Continue)
)
:Continue
Set /A %~2+=1
GoTo :Eof
Использовал скрипты alpap
|