Büyük olasılıkla WMIC ile yapılabilmesine rağmen, START komutunun paralel işlemeyi başlatmasını isteyeceksiniz. İlk argümanın alıntı yapılması durumunda bir pencere başlığı olarak değerlendirildiğini unutmayın. Bu yüzden ilk tartışmam boş bir dize. /B
seçeneği komutu aynı pencerede çalıştırır. Her komut için yeni bir pencere istiyorsanız onu kaldırın.
Bir dizi paralel işlemin bitmesini beklemek için basit bir yerel toplu komut veya seçenek yoktur.
Kullanılmayan bir dosya tanıtıcısını her işlem için bir dosyaya yönlendirmeyi ve böylece özel bir kilit oluşturmayı seviyorum. Yeniden yönlendirmeyi deneyerek bir işlemin hala devam edip etmediğini tespit edebilirim. (CALL )
(etkin bir null op) aynı kilit dosyasına. Yönlendirme başarısız olursa, işlem hala çalışıyor demektir. Başarı, sürecin sona erdiğini gösterir.
Test, bir sorgulama döngüsünde kilit dosyalarının her birine karşı yapılmalıdır. Bir gecikme eklemek, yoklama döngüsünün kaynakları kötüye kullanmasını önlemek için iyi bir fikirdir.
@echo off
set "lock=%temp%\%~nx0.lock"
start "" /b "timeout" 5 9>"%lock%.1"
start "" /b "timeout" 8 9>"%lock%.2"
:wait
timeout 1 /nobreak >nul
2>nul (for %%F in ("%lock%.*") do 9>"%%F" (call ) && del "%%F" || goto :wait)
echo OK
Çalıştırılacak çok sayıda paralel işleminiz varsa ve eşzamanlı işlemlerin sayısını sınırlamak istiyorsanız, o zaman ilginizi çekebilir. https://stackoverflow.com/a/11715437/1012053
wait-job
( technet.microsoft.com/en-us/library/Hh849735.aspx )