664 votes

Comment empêcher la fermeture automatique de la console après l'exécution d'un fichier batch ?

Quelle commande puis-je mettre à la fin d'un fichier batch pour empêcher la fermeture automatique de la console après l'exécution du fichier ?

6 votes

Ce serait bien s'il y avait un moyen de détecter si un fichier .cmd a été lancé par un double-clic dans l'explorateur (alors vous voulez qu'il fasse une pause à la fin) ou s'il a été lancé par une ligne de commande déjà ouverte. Dans ce dernier cas (et surtout s'il est exécuté par un autre programme), vous ne voulez pas de pause. Je n'ai pas trouvé de bonne solution pour ce cas (et j'utilise généralement une variable if %NOPAUSE%, mais cela ne fonctionne que pour les programmes parents, pas pour les shells paremt).

1 votes

19voto

Lyfing Points 74

Ajouter cmd.exe comme une nouvelle ligne sous le code que vous voulez exécuter :

c:\Python27\python D:\code\simple_http_server.py

cmd.exe

0 votes

C'est exactement ce que je cherchais, merci ! La "pause" ne va tout simplement pas fonctionner lorsque votre script python se fait planter. Ce que je voulais, c'est voir un message d'erreur. Jusqu'à présent, je devais exécuter mes script python à travers la console.

1 votes

Mais cela fonctionne bien : python script.py %1 && cmd

0 votes

Merci ! Cela m'a aidé ! Je créais un fichier batch pour exécuter des applications python.

14voto

Erich Chen Points 121

Ma méthode consiste à écrire un lot réel (en disant "foo.bat") pour terminer le travail, puis à créer un autre "start.bat" :

@echo off
cmd /k foo.bat

Je trouve cela extrêmement utile lorsque je configure des variables d'environnement ponctuelles.

3 votes

Vous pouvez simplement mettre cmd /k (sans aucune commande) à la fin de foo.bat et exécutez-le. Vous n'avez pas besoin d'un start.bat fichier.

11voto

user4155296 Points 109

Appelez cmd à la fin du fichier batch.

5voto

lama12345 Points 169

J'ai eu des problèmes avec les réponses ici, alors j'ai trouvé ceci, qui fonctionne pour moi (TM) :

cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause

4voto

npocmaka Points 7794

En plus de pause .

set /p=

Il attendra l'entrée de l'utilisateur et libérera le flux lorsque la touche Entrée sera pressée.

ou

runas /user:# "" >nul 2>&1

qui fera la même chose, sauf que rien de ce qui a été saisi par l'utilisateur ne sera affiché et ne restera dans l'historique des commandes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X