2017-08-22 1 views
1

J'essaie d'utiliser un fichier batch pour exécuter un script python afin que lorsque la session batch se termine (terminaison par exemple) le script python se ferme également. Par exemple, si je voulais faire l'inverse (Python-> Batch)Comment exécuter un script python, à partir d'un fichier batch, qui agit comme un sous-processus de l'instance cmd?

Je voudrais utiliser le module de sous-processus.

Comment puis-je y parvenir?

c'est la ligne correspondante dans le fichier batch:

python run.py %* 

qui exécute le script python, mais à y mettre fin, le script python continue à fonctionner

+2

Si vous avez déjà la ligne dans le fichier batch, quel est le problème? Le fichier de commandes se termine-t-il avant la fin du script Python? – AK47

+0

Je veux terminer le fichier batch avant le script python, mais je veux aussi que cette action termine le script pythin, ce qui n'est pas le cas. – Yoavhayun

+0

Cela n'a aucun sens, pourquoi le fichier batch doit-il se terminer en premier? Pourriez-vous faire quelque chose comme exécuter le script python en arrière-plan et puis à la fin de votre script de lot avoir une commande de rappel pour tuer tous les sous-processus du script en cours? – AK47

Répondre

0

Shell script devrait être comme celui-ci pour exécuter l'exécution py:
python run.py

Si vous voulez inclure des arguments de ligne de commande pour run.py votre script shell sera comme:
%1 et %2 sont les arguments de ligne de commande.

Votre script de traitement par lots ne peut pas se terminer si le fichier python n'est pas entièrement exécuté. Assurez-vous que vous avez fait toutes les choses correctement.