Quelqu'un sait-il s'il existe un script cmd qui le fait et / ou un outil de ligne de commande prêt pour le travail?
14
Quelqu'un sait-il s'il existe un script cmd qui le fait et / ou un outil de ligne de commande prêt pour le travail?
Réponses:
Créez les trois fichiers batch ci-dessous. Main.bat lance 1.bat et 2.bat
1.bat et 2.bat écrivent des fichiers temporaires pour lesquels main.bat vérifie. Pendant que 1.bat et 2.bat fonctionnent, main.bat signale que le traitement est toujours en cours. Lorsque vous appuyez sur Entrée dans la fenêtre ouverte de 1.bat ou 2.bat, le fichier temporaire est supprimé et le programme se ferme. Cela simule l'arrêt du traitement pour ce fichier .bat. Si vous procédez ainsi pour 1 et 2.bat, main.bat vous signale que le traitement est terminé pour ces processus. Vous pouvez faire 1.bat et 2.bat faire ce que vous voulez, tant que vous effacez le fichier temporaire lorsque vous avez terminé. À ce stade, main.bat peut également faire tout ce que vous voulez.
1.bat
2.bat
main.bat
la source
Assez simple, à condition que les processus n'aient pas besoin d'entrée ou de sortie standard. Depuis la ligne de commande ou dans un fichier batch:
Cela exécutera les quatre processus simultanément et ne reviendra pas tant qu'ils ne seront pas tous terminés. (Exception possible: si un processus ferme explicitement la sortie standard, il peut être traité comme s'il s'était arrêté. Mais c'est inhabituel, très peu de processus le font.)
Je ne sais pas exactement combien de processus vous pouvez lancer simultanément de cette façon. J'en ai essayé jusqu'à dix.
la source
La seule façon de procéder consiste à démarrer des fichiers de commandes séparés (voir
start /?
) qui exécutent la tâche individuelle et à écrire un fichier texte à la fin. Ensuite, vous vérifiez périodiquement si les fichiers texte ont été créés.la source
Vous pouvez consulter la cmdlet Powershell Start-Job. Cela devrait vous permettre de le faire. Plus ici Powershell est le shell de choix de Microsoft. Il est beaucoup plus puissant que les scripts cmd et investit bien votre temps
la source
Ou vous pouvez utiliser ceci: http://www.out-web.net/?p=167
Je l'ai fait, cela fonctionne, mais il arrive parfois que le PID du processus terminé soit immédiatement réutilisé par un autre processus Windows qui vient de démarrer, et cela rend la détection de la fin de votre processus dangereuse / erronée.
la source
Je cherchais également une tâche similaire. L'objectif était d'exécuter plusieurs commandes en parallèle et d'extraire la sortie (stdout & error) de tous les processus parallèles. Attendez ensuite que tous les processus parallèles se terminent et exécutez une autre commande. Voici un exemple de code pour le fichier BAT, qui peut être exécuté dans 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
Toutes les instructions à l'intérieur
()
sont exécutées en premier, attendez qu'elles se terminent, puis les deux dernières lignes sont exécutées. Toutes les commandes commençant parstart
sont exécutées simultanément.Ces liens sont utiles: /programming//a/43762349/9689416 et https://ss64.com/nt/start.html
la source