igor_andreev
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору z1riser Цитата: Повторяю задачу: "организовать 10 одновременных потоков" | Короче хочешь, чтоб одновременно работало только 10 экземпляров robocopy.exe Приблизительно так батник должен выглядеть, без проверки(у мну в net view меньше десяти компов) Код: @echo off rem устанавливаешь счетчик процессов robocopy в ноль set /a "count=0" for /f "tokens=1 delims=\" %%a in ('net view ^| find "\\"') do ( rem start без /wait start /min /high robocopy.exe "\\%%i\C$" X:\backup\uim\%%i\C ... rem чтоб заморочек не было с восклицательными знаками - enabledelayedexpansion rem не используй, вызывай метку и там увеличивай %count% call :robo_count start /min /high robocopy.exe "\\%%i\D$" X:\backup\uim\%%i\D ... call :robo_count ) goto :eof :robo_count set /a "count+=1" rem если счетчик процессов robocopy не равен десяти - возврат в цикл FOR if not "%count%/"=="10/" goto :eof rem если запустили уже 10 робокопей - ждем, пока они закончат работу :robo_wait rem задержку поставь какую удобней вместо 10 sleep 10 rem вместо tlist впиши, что у тебя на сервере список процессов rem выводит, pv.exe там или tasklist.exe или еще что tlist | find /i "robocopy" && goto :robo_wait rem если все 10 процессов завершились - счетчик сбрасываем на ноль set /a "count=0" goto :eof | Если robocopy версии 026 - в ней есть параметр /IPG, яб его еще задействовал, опытным путем определи нужное значение. Добавлено: GM07 Попробуй батник переименуй |