2016-03-16 1 views
5

Bonjour, J'ai un fichier .bat qui exécute une application spécifique puis après 5 secondes il va fermer/tuer.Ouverture/fermeture de l'application via le fichier .bat [Windows]

J'ai maintenant en raison de l'ouvrir avec succès l'application pensée lorsque l'application s'ouvre, il n'exécutera pas les commandes restantes sauf si je ferme manuellement l'application.

Voici mon code:

cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
asperascp.exe 
sleep 5 
taskkill /IM asperascp.exe /f 

J'essaie aussi de retirer la commande sleep.

cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
asperascp.exe 
taskkill /IM asperascp.exe /f 

Mais il aura même sortie il ne sera pas exécuter les commandes restantes lorsque le asperascp.exe commence.

Des conseils?

Merci.

Répondre

7

Vous pouvez utiliser la commande Start /b.

@echo off 
cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
Start "" /b asperascp.exe 
timeout /T 5 /nobreak >nul 
taskkill /IM asperascp.exe /F 
+2

Il dit qu'il attend déjà de se terminer avant de continuer. Il veut le tuer cinq secondes après le début; il devrait utiliser 'start/b'. – SomethingDark

+1

@SomethingDark je modifie ma réponse merci de m'avoir remarqué – Hackoo

+0

Merci, vous êtes génial! – Edmhar

3

TASKKILL /IM asperascp.exe /F
tueront toutes les images avec le même nom de l'image. Donc, si vous exécutez le même programme deux fois, par exemple, et que le second démarre avant que le premier ne se termine, le second sera également tué lorsque le premier exécutera taskkill. Si vous faites tasklist, vous verrez des images avec le même nom d'image, mais avec des PID différents. Vous devrez obtenir le PID du processus commencé par votre fichier batch (je ne peux pas penser à comment faire avec CMD.) Ensuite, vous pouvez utiliser: TASKKILL /PID 999 /F