バッチファイルでスリープソート

スリープソートというユニークなソートアルゴリズムがあることを知りました。



本家はbashシェルスクリプトですが、バッチファイルで作ってみました。
@echo off

type nul > sort.txt
set /a wait=1

for %%f in (%*) do (
    start /min task.bat %%f
    set /a wait=wait+%%f
)

timeout %wait% /nobreak > nul

type sort.txt
del sort.txt

pause
exit /b
バッチファイルではコマンドのバックグラウンド実行ができないので、startコマンドで別のバッチファイルを子タスクとして走らせます。
@echo off

timeout %1 /nobreak > nul
echo %1 >> sort.txt

exit
ソートの結果はそれぞの子タスク内でウエイトしたのちファイルに出力。
親のバッチファイルでファイルを読み取り、結果をコンソールに出力します。
>sleepsort.bat 5 3 6 3 6 3 1 4 7
1
3
3
3
4
5
6
6
7
続行するには何かキーを押してください . . .
できました!何の役にもたたないけど。