Код:

::Многопотоковое создание пустых файлов ::by Alex Drago.kas
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
Set Dest=y:\m2
Set /A Potok=50
Set /A PotokMax=8
Set /A Range=10000
if not exist "%Dest%" md "%Dest%"
::1 из потоков - управляющий (этот код) + 1(?не знаю почему)
Set /A PotokMax+=2
Set TimeS=%Time%
Call :TimeToMSec "%TimeS%" TimeS_ms
Echo Задание начато в %TimeS%
Set /A sS=0
For /L %%P in (1,1,%Potok%) do (
Set /A sE=!sS!+%Range%-1
start "Stream %%P" /min "CMD /Q /C For /L %%N in (!sS!,1,!sE!) do cd.>%Dest%\%%N"
Set /A sS+=%Range%
Echo Запущен поток № %%P
Call :WaitForReady %PotokMax%
)
Echo Все потоки запущены.
Echo Ожидаю завершения заданий.
Call :WaitForReady 3&:: (+1 ?не знаю почему)
Set TimeE=%Time%
Call :TimeToMSec "%TimeE%" TimeE_ms
Echo Задание начато в %TimeS%
Echo Задание завершено в %TimeE%
Set /A diff=TimeE_ms-TimeS_ms
Set /A diffSS=diff/100
Set /A diffms=%diff% %% 100
Set /A TotalFiles=Potok*Range
Set /A Speed=TotalFiles*100/diff
Echo Записано %TotalFiles% файлов.
Echo Затрачено: %diffSS%,%diffms% с.
Echo Скорость: %Speed% файлов/с.
Echo.
pause
Goto :eof
:WaitForReady %PotokMax%
Set /A n=0
For /F "Delims=" %%A in ('tasklist^|Findstr /BLIC:cmd.exe') do (Set /A n+=1)
if %n% LSS %~1 Exit /B
ping -w 100 -n 1 192.168.254.254> nul
Goto :WaitForReady
:TimeToMSec %Time% %var_mSec%
For /F "Tokens=1-4 Delims=,:" %%A in ("%~1") do (
Set /A HH=%%A
Set MM=1%%B& Set /A MM=!MM!-100
Set SS=1%%C& Set /A SS=!SS!-100
Set mS=1%%D& Set /A mS=!mS!-100
)
Set /A %~2=(HH*60*60+MM*60+SS)*100+mS
Exit /B