試した環境 Windows 10 本題 以下の処理ではforループ内で指定した回数(ここでは4回)だけサブルーチンを順次に呼び出しています。 サブルーチンは実際の処理の代わりにtimeoutコマンドを呼んでいます。 @echo off pushd %~dp0 for /l %%i in (0, 1, 3) do ( :: call sequentially call :subroutine %%i ) popd pause exit /b :subroutine echo subroutine(%1) timeout /t 10 exit /b このサブルーチンを並列に呼び出したいと思ったとき、startコマンドを使った以下の方法では上手くいきません。 @echo off pushd %~dp0 for /l %%i in (0, 1, 3) do ( :: call parallelly