Показать полную графическую версию : [решено] Создание файлов рандомного размера
Добрый день
Подскажите пожалуйста, пример батника, для генерации файлов рандомного размера с рандомными данными и именами.
Например, с помощью fsutil можно сделать файл с конкретным размером:
fsutil file createnew C:\file 100000
В идеале нужно, чтобы батник работал примерно так:
1. Спрашивает сколько файлов нужно создать
2. Спрашивает диапазон размера создаваемых файлов, например в формате "1000-5000" кб
3. Далее, генерирует файлики и кладет их рядом с собой или в указанную папку
Легко:
@echo off
set /p nf="Имя и расширение файла: "
set /p m="Сколько файлов создавать: "
set /p sz="Размер файла в байтах: "
for /l %%a in (1 1 %m%) do call :# "%nf%"
exit
:#
if not exist "%~n1%n%%~x1" (fsutil file createnew "%~n1%n%%~x1" %sz%) else (set /a n+=1& goto #)
exit /b
с рандомным диапазоном и именем
@echo off
set /p m="Сколько файлов создавать: "
set /p sz_min="Размер файла в байтах от: "
set /p sz_max="Размер файла в байтах до: "
for /l %%a in (1 1 %m%) do call :# "%%a"
exit
:#
set /a "sz=%random%%%(sz_max-sz_min+1)+sz_min"
fsutil file createnew "%random%%~1%random%" %sz%
exit /b
megaloman
30-04-2017, 22:47
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
@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
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd.