Comment empêcher la fermeture automatique de la console après l'exécution du fichier batch.

Quelqu'un peut-il me dire, quelle commande Mettre à la fin d'un fichier batch pour empêcher la fermeture automatique de la console après l'exécution du fichier?

403
demandé sur Alex.K. 2009-06-12 22:57:37

15 réponses

Dans les fichiers batch Windows / DOS:

pause

Cela imprime un joli message "Press any key to continue . . . "

Ou, si vous ne voulez pas le message "Press any key to continue . . .", Faites ceci à la place:

pause >nul
527
répondu Dave Bauman 2013-07-30 20:52:49

Dépend de la question exacte!

Normalement pause fait le travail dans un .chauve-souris fichier.

Si vous voulez cmd.exe ne pas fermer pour pouvoir rester en tapant, utilisez la commande cmd /k à la fin du fichier.

116
répondu Rutger Nijlunsing 2017-10-23 08:01:55

Si vous voulez cmd.exe pour ne pas fermer et pouvoir continuer à taper, utilisez cmd /k

Juste ressenti le besoin de clarifier ce que fait /k (à partir du site Web de windows):

/k : exécute la commande spécifiée par chaîne et continue.

Donc cmd /k sans commande de suivi à la fin du fichier bat gardera simplement la fenêtre cmd.exe ouverte pour une utilisation ultérieure.

D'autre part pause à la fin d'un fichier batch simplement suspendre le processus et de mettre fin à cmd.exe sur le premier bouton appuyez sur

49
répondu Valentine Stone 2017-07-16 22:36:27

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 quitteront pas automatiquement.

start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2
17
répondu user6928445 2016-10-05 19:42:23

Ajoutez {[1] } comme une nouvelle ligne sous le code que vous voulez exécuter:

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

cmd.exe
11
répondu lyfing 2015-03-13 12:10:32

Appelez cmd à la fin du fichier batch.

8
répondu user4155296 2015-03-13 12:09:27

Ma façon est d'écrire un lot réel (en disant " foo.bat") pour terminer le travail; puis créer un autre " début.MTD":

@echo off
cmd /k foo.bat

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

5
répondu Erich Chen 2017-01-04 10:02:35

Outre pause.

set /p=

Peut être utilisé. il attend l'entrée de l'utilisateur et libère le flux lorsque vous appuyez sur Entrée.

Ou

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

Qui fera la même chose sauf que rien de l'entrée de l'utilisateur ne sera affiché ni ne restera dans l'historique des commandes.

3
répondu npocmaka 2015-02-15 09:44:23

Possibilité 1: Juste faire 2 .bat fichiers et écrire dans le premier:

start <filename> // name of 2nd batch file
exit

Batch file 2 est le fichier qui ne se ferme pas à la fin. Alors maintenant, lorsque vous ouvrez le lot nr. 1, il commencera le 2ème et cloe lui-même. Lorsque le 2ème se termine, il ne se fermera pas entièrement (tant que vous ne mettrez pas de sortie à la fin)

Possibilité 2: Fichier Batch 1:

call <filename>
cls
echo End of file
pause
<any code you want>

Lorsque le 2ème fichier se termine, il passera à nouveau au fichier 1 et affichera le reste. Avec cela, vous pouvez même faire des gestionnaires d'erreurs. Si nr. 1 se bloque il entre dans nr. 2 et l'affiche

3
répondu BlazeLP 2016-11-17 19:44:10

Ce petit hack demande à l'utilisateur d'entrer une clé et de la stocker dans la variable % exitkey% (cette variable pourrait être appelée Tout ce que vous voulez cependant).

set /p exitkey= "Press any key to continue..."

NB: l'espace après le " = " est très important,

2
répondu Steven Mark Ford 2017-09-29 04:07:01
pause

Ou

echo text to display
pause>nul
2
répondu Jude Urman 2018-06-02 18:30:11

Si vous utilisez Maven et que vous voulez ignorer la saisie et empêcher la console de voir le résultat, vous devez utiliser la commande CALL dans le script, en plus de 'mvn clean install'.

Comme ceci fermera la console

ECHO This is the wrong exemple
mvn clean install
pause

Comme ceci la console restera ouvert

ECHO This is the right exemple
CALL mvn clean install
pause

Si vous n'utilisez pas la commande CALL, aucun des exemples passés ne fonctionnera.

1
répondu Andrey Hartung 2018-09-06 13:33:52

Il y a deux façons de le faire dépendent de cas d'utilisation

1) si vous voulez que l'invite Windows cmd reste ouverte afin que vous puissiez voir le résultat de l'exécution et le fermer ensuite; utilisez

pause

2) Si vous voulez que l'invite Windows cmd reste ouverte et vous permette d'exécuter des mots-après de commande; Utilisez

cmd

entrez la description de l'image ici

0
répondu Hitesh Sahu 2017-09-02 10:14:06

Facile, ajouter 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 fonctionnera pas cmd, et il suffit de fermer la fenêtre, et vous ne pouvez pas voir l'Erreur msg.

0
répondu Wei Kleeff 2017-09-04 04:12:31

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 entrée.

-1
répondu decadenza 2018-04-01 15:22:15