Adakah yang tahu jika ada skrip cmd yang melakukan itu dan / atau alat baris perintah yang siap untuk pekerjaan itu?
14
Adakah yang tahu jika ada skrip cmd yang melakukan itu dan / atau alat baris perintah yang siap untuk pekerjaan itu?
Jawaban:
Buat tiga file batch di bawah ini. Main.bat meluncurkan 1.bat dan 2.bat
1.bat dan 2.bat menulis file sementara yang diperiksa main.bat. Ketika 1.bat dan 2.bat berfungsi, main.bat melaporkan kembali bahwa pemrosesan masih terjadi. Ketika Anda menekan enter pada jendela terbuka 1.bat atau 2.bat, file sementara dihapus, dan program keluar. Ini mensimulasikan pemrosesan berhenti untuk file .bat itu. Jika Anda melakukan ini untuk 1 dan 2.bat, main.bat melaporkan kepada Anda bahwa pemrosesan telah selesai untuk proses ini. Anda dapat membuat 1.bat dan 2.bat melakukan apa pun yang Anda inginkan, selama Anda menghapus file sementara saat Anda selesai. Pada titik ini main.bat dapat melakukan apapun yang Anda inginkan juga.
1.bat
2.bat
main.bat
sumber
Cukup sederhana, asalkan prosesnya tidak memerlukan input atau output standar. Dari baris perintah, atau dalam file batch:
Ini akan menjalankan keempat proses secara bersamaan, dan tidak akan kembali sampai semuanya keluar. (Kemungkinan pengecualian: jika suatu proses secara eksplisit menutup output standar mungkin diperlakukan seolah-olah telah keluar. Tapi itu tidak biasa, sangat sedikit proses melakukan itu.)
Saya tidak yakin persis berapa banyak proses yang dapat Anda luncurkan secara simultan dengan cara ini. Saya sudah mencoba hingga sepuluh.
sumber
Satu-satunya cara untuk melakukan ini adalah memulai file batch yang terpisah (lihat
start /?
) yang menjalankan tugas individu dan menulis file teks setelah selesai. Kemudian, Anda secara berkala memeriksa apakah file teks telah dibuat.sumber
Anda mungkin melihat cmdlet Start-Job Powershell. Seharusnya memungkinkan Anda untuk melakukan ini. Lebih lanjut di sini Powershell adalah pilihan Microsoft. Ini jauh lebih kuat daripada skrip cmd dan juga investasi waktu Anda
sumber
Atau Anda dapat menggunakan ini: http://www.out-web.net/?p=167
Saya berhasil, berhasil, namun kadang-kadang terjadi bahwa PID dari proses selesai segera digunakan kembali oleh prosesus Windows lain yang baru saja dimulai, dan itu membuat deteksi akhir proses Anda berbahaya / salah.
sumber
Saya juga mencari tugas serupa. Tujuannya adalah untuk menjalankan beberapa perintah secara paralel dan mengekstrak output (stdout & error) dari semua proses paralel. Kemudian tunggu semua proses paralel untuk menyelesaikan dan menjalankan perintah lain. Berikut ini adalah contoh kode untuk file BAT, dapat dieksekusi dalam CMD:
( start "" /B cmd /c ping localhost -n 6 ^>nul timeout /t 5 /nobreak start "" /B /D "C:\users\username\Desktop" cmd /c dir ^> dr.txt ^2^>^&^1 start "" /B cmd /c ping localhost -n 11 ^>nul timeout /t 10 /nobreak ) | pause Echo waited timeout /t 12 /nobreak
Semua pernyataan di dalam
()
dieksekusi terlebih dahulu, tunggu sampai selesai, lalu dua baris terakhir dieksekusi. Semua perintah yang dimulaistart
dijalankan secara bersamaan.Tautan ini sangat membantu: /programming//a/43762349/9689416 dan https://ss64.com/nt/start.html
sumber