2017-09-29 27 views
1

Je suis en train de planifier dans le planificateur de tâches:Python.exe reste ouvert après fichier batch en cours d'exécution dans le planificateur de tâches

  1. exécuter un fichier batch
  2. Activer un environnement Conda
  3. Exécuter un programme python
  4. commande de sortie rapide

tout fonctionne très bien, sauf la fenêtre python.exe reste ouvert tant que l'invite de commande ferme.

Mon fichier batch: (. Le sommeil est le code python pour l'exécuter prend quelques secondes)

call activate python2 
start C:\Users\Chris\Anaconda3\envs\python2\python.exe testtest.py 
sleep 30 
exit 

Mon script python:

driver = webdriver.Chrome(executable_path="C:\path\to\chromedriver") 
driver.get('http://website.com') 

# Find email and pw fields and then fill them in 
email = driver.find_element_by_id("user_email") 
email.send_keys('[email protected]') 
pw = driver.find_element_by_id("user_password") 
pw.send_keys('password') 

# Click on sign-in button 
driver.find_element_by_class_name("button").click() 
time.sleep(5) 

# Click on save button to update 
driver.find_element_by_class_name("button").click() 

# Close driver 
driver.close() 

Dernière chose, le programme/script est le fichier batch, sans arguments, et le début est dans le répertoire dans lequel se trouve le fichier batch.

Toute aide serait appréciée!

Répondre

0

Je ne suis pas un expert en python, mais je pense que vous avez juste besoin de call sys.exit() or quit().

Au lieu d'utiliser le sommeil et d'attendre trop longtemps ou peut-être pas assez longtemps, appelez commencer avec l'option d'attente:

call activate python2 
start /WAIT C:\Users\Chris\Anaconda3\envs\python2\python.exe testtest.py 
exit 

Si vous ne avez pas besoin du fichier batch pour faire autre chose, vous pouvez commencer à le script python et exit.

+0

Le/WAIT fonctionne parfaitement, mais sys.exit() et quit() ne fonctionnent pas lorsqu'ils sont écrits dans le script Python. – Chris

+0

Je pense que peut-être ce qui doit être quitté est la fenêtre de la console créée par la commande start et non le script python. Peut-être que vous feriez mieux de simplement utiliser une autre déclaration d'appel au lieu de commencer. Avez-vous besoin d'exécuter le script python dans une fenêtre séparée? – DSway

+0

Je ne veux pas que le script python s'exécute dans une fenêtre séparée. Si ça fonctionnait dans le même, ce serait génial. J'ai essayé d'appeler simplement l'instruction python, mais maintenant l'invite de commande ne se ferme pas. Il affiche la commande exit, mais ne se ferme pas réellement. – Chris