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?
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?
Réponses:
Dans les fichiers batch Windows / DOS:
pause
Cela imprime un joli "Press any key to continue . . . "
message
Ou, si vous ne voulez pas le "Press any key to continue . . ."
message, faites-le à la place:
pause >nul
Cela dépend de la question exacte!
Effectue normalement pause
le travail dans un fichier .bat .
Si vous souhaitez que cmd.exe ne se ferme pas pour pouvoir continuer à taper, utilisez la cmd /k
commande à la fin du fichier.
cmd /k
plutôt votre commande avant. & cmd /k
ne fonctionnera pas.
Si vous souhaitez que cmd.exe ne se ferme pas et puisse continuer à taper, utilisez
cmd /k
Je viens de ressentir le besoin de clarifier ce que /k
fait (à partir du site Web de Windows):
/k
: Exécute la commande spécifiée par chaîne et continue.
Ainsi, cmd /k
sans commande de suivi à la fin du fichier bat gardera simplement la cmd.exe
fenêtre ouverte pour une utilisation ultérieure.
D'un autre côté, pause
à la fin d'un fichier de commandes, le processus s'arrêtera simplement et se terminera cmd.exe
à la première pression sur le bouton
La manière ci-dessous d'avoir des commandes dans un fichier batch ouvrira de nouvelles fenêtres d'invite de commandes et les nouvelles fenêtres ne se fermeront pas automatiquement.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
Si vous utilisez Maven et que vous souhaitez ignorer la saisie et empêcher la console de se fermer pour voir le résultat, vous devez utiliser la CALL
commande dans le script, en plus de la «mvn clean install».
Comme cela fermera la console
ECHO This is the wrong exemple
mvn clean install
pause
Comme ça, la console restera ouverte
ECHO This is the right exemple
CALL mvn clean install
pause
Si vous n'utilisez pas la CALL
commande, aucun des exemples passés ne fonctionnera.
call <myCommand>
résolu ce problème: Mon invite a cessé de fermer après la première exécution
Ajoutez cmd.exe
une nouvelle ligne sous le code que vous souhaitez exécuter:
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
ma façon est d'écrire un lot réel (en disant "foo.bat") pour terminer le travail; puis créez un autre "start.bat":
@echo off
cmd /k foo.bat
Je trouve que cela est extrêmement utile lorsque je configure des variables d'environnement ponctuelles.
cmd /k
(sans aucune commande) à la fin du foo.bat
fichier et l'exécuter. Vous n'avez pas besoin d'un start.bat
fichier séparé .
Appelez cmd
à la fin du fichier de commandes.
Possibilité 1: Créez simplement 2 fichiers .bat et écrivez dans le premier:
start <filename> // name of 2nd batch file
exit
Le fichier batch 2 est le fichier qui ne se fermera pas à la fin. Alors maintenant, lorsque vous ouvrez le lot n ° 1, il démarre le 2e et cloe lui-même. Lorsque le 2e se termine, il ne se fermera pas entièrement (tant que vous ne mettrez pas la sortie à la fin)
Possibilité 2: Fichier de lot 1:
call <filename>
cls
echo End of file
pause
<any code you want>
Lorsque le 2e fichier se termine, il passe à nouveau au fichier 1 et génère le reste. Avec cela, vous pouvez même faire des gestionnaires d'erreurs. Si le n ° 1 plante, il passe au n ° 2 et l'affiche
Ce petit hack demande à l'utilisateur d'entrer une clé et de la stocker dans la variable% exitkey% (cette variable pourrait être appelée comme vous voulez).
set /p exitkey= "Press any key to continue..."
NB: l'espace après le '=' est très important
Je sais que je suis en retard mais ma façon préférée est:
:programend
pause>nul
GOTO programend
De cette façon, l'utilisateur ne peut pas quitter en utilisant enter.
Il existe deux façons de le faire en fonction du cas d'utilisation
1) Si vous souhaitez que l'invite Windows cmd reste ouverte afin que vous puissiez voir le résultat de l'exécution et le fermer par la suite; utilisation
pause
2) si vous voulez que l'invite Windows cmd reste ouverte et vous permette d'exécuter des mots de passe de commande; utilisation
cmd
Facile, ajoutez cmd à votre dernière ligne de chauve-souris, MAIS! si vous réinitialisez ou effacez votre chemin système, vous devez démarrer votre cmd avec le chemin complet, comme:
%windir%\system32\cmd.exe
Par exemple, j'ai un fichier bat pour réinitialiser jdk à l'ancienne version comme ceci:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
depuis que je réinitialise le chemin du système, je dois exécuter cmd avec le chemin complet, ou le système ne peut pas trouver cmd.exe, il ne parviendra pas à exécuter cmd, et juste fermer la fenêtre, et vous ne pouvez pas voir le message d'erreur .