windows - Batchbehandling flere filer på samme tid

Indlæg af Hanne Mølgaard Plasc

Problem




    Dette spørgsmål har allerede et svar her:

    

            

  •             Parallel udførelse af shell processer
                    
                        5 svar
                    

            

  •     

Bedste reference


Følgende starter processer op til maksimalt antal \%bunch\%. Når en af ​​dem er færdig, vil en anden blive startet. /questions/672719/parallel-execution-of-shell-processes


@ECHO off
setlocal enabledelayedexpansion
set bunch=3

for \%\%a in (C:input*) do (
  call :loop 
  echo processing: \%\%a
  start "MyCommand" cmd /c timeout 60
  REM if not exist "C:output\%\%i" start "MyCommand" cmd /c process.exe "\%\%i" -out "C:output\%\%i"

)
call :loop
goto :eof

:loop  REM waits for available slot
echo on
for /f \%\%x in ('tasklist /fi "windowtitle eq MyCommand"  ^| find /c "cmd.exe"') do set x=\%\%x
if \%x\% geq \%bunch\% goto :loop
echo off
goto :eof


Jeg har ikke din process.exe, så jeg må gætte. Men REM ed-linjen skal virke for dig. (timeout kommandoen er bare for at vise princippet)