Fichiers batch: comment laisser la fenêtre de la console ouverte


105

J'ai deux fichiers batch, l'un d'eux en exécute un autre, c'est-à-dire

  1. "Mon fichier batch"> 2. "Un autre fichier batch"

J'ai créé un raccourci du premier fichier de commandes et modifié ses propriétés pour l'appeler de la manière suivante.

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

Ce que je veux faire Je veux que la fenêtre de la console soit ouverte une fois l'exécution du fichier batch terminée. Maintenant, il se ferme juste, a essayé de jouer autour des drapeaux cmd, aucun résultat.

Plate-forme: Windows7


MISE À JOUR 1

Modification de la structure, l'exemple simple comme celui-ci ne fonctionne pas aussi bien, Un seul fichier batch c'est-à-dire qu'il n'y a pas le 2. "Un autre fichier batch" Le seul fichier batch contient smth comme celui-ci

start /B /LOW /WAIT make package
cmd /K

MISE À JOUR 2

Le même raccourci qui est appelé depuis l'Explorateur ne ferme pas la fenêtre de la console. Mais la fenêtre de la console se ferme lorsque le raccourci est appelé à partir de l'élément épinglé dans la barre des tâches

Des idées pour garder la fenêtre de la console ouverte?


Je suppose que tu veux que ça My Batch Filereste?
Marc B

"Chaud de laisser la fenêtre de console d'un fichier batch ouverte" est demandé et répondu bien plus clairement ici: superuser.com/questions/175515
...

Réponses:


126

Si c'est vraiment tout ce que fait le fichier de commandes, supprimez cmd /Ket ajoutez PAUSE.

start /B /LOW /WAIT make package
PAUSE

Ensuite, pointez simplement votre raccourci vers "My Batch File.bat"... pas besoin de l'exécuter avec CMD /K.

METTRE À JOUR

Ah, de nouvelles informations ... vous essayez de le faire à partir d'un raccourci épinglé dans la barre des tâches.

J'ai trouvé ceci, ajouter des fichiers par lots à la barre des tâches de Windows 7 comme le lancement rapide de Vista / XP , avec la partie appropriée ci-dessous.

  1. Tout d'abord, épinglez un raccourci CMD.EXEvers la barre des tâches en appuyant sur le bouton Démarrer, puis tapez "cmd" dans la zone de recherche, cliquez avec le bouton droit sur le résultat et choisissez "Épingler à la barre des tâches".
  2. Cliquez avec le bouton droit sur le raccourci dans la barre des tâches.
  3. Vous verrez une liste qui comprend « Invite de commandes » et « Détacher ce programme de la barre des tâches ».
  4. Cliquez avec le bouton droit de la souris sur l'icône CMD.EXEet sélectionnez Properties.
  5. Dans la zone Target, allez à la fin de "%SystemRoot%\system32\cmd.exe"et saisissez " /C "le chemin et le nom du fichier de commandes.

Pour vos besoins, vous pouvez soit:

  1. Utilisez /Cet mettez un PAUSEà la fin de votre fichier batch.

    OU

  2. Modifiez la ligne de commande à utiliser /Ket supprimez le PAUSEde votre fichier de commandes.

Je l'ai déjà fait, ma question n'est pas de savoir comment appeler un autre fichier batch ...
deimus

Ensuite, nous devons voir le contenu des deux fichiers de commandes.
aphorie du

S'il vous plaît voir la question mise à jour
deimus

Le même problème, le remplacement de CMD / K ne fonctionne pas. Pourquoi la fenêtre de console ne se ferme pas si le raccourci est appelé depuis l'Explorateur?
deimus

13

Ici:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

Jetez un œil à ce que vous faites:

  1. (cmd / K) Démarrez une NOUVELLE instance cmd.
  2. (& pause) Suspend l' instance de cmd CURRENT.

Comment le résoudre? Eh bien, en utilisant la syntaxe correcte, en incluant l'argument de la nouvelle instance CMD:

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"

6

Je viens d'écrire la dernière ligne comme Pause, cela fonctionnait bien avec .bat et .cmd. Il affichera également le message «Appuyez sur n'importe quelle touche pour continuer».


C'est la bonne réponse! Devrait être le plus voté.
Patrick Hillert

5

Dans la dernière ligne du fichier batch que vous souhaitez garder ouvert, mettez un

pause >nul


On dirait qu'il se ferme tôt, peut-être une erreur dans le script. Essayez d'ouvrir une invite cmd et de l'exécuter à partir de là, vous pourrez voir s'il y a des erreurs.
Bali C

3

Pour laisser la fenêtre de la console ouverte, il vous suffit d'ajouter à la dernière ligne de commande du fichier batch:

' & pause'

2

Vous pouvez simplement mettre une pausecommande dans la dernière ligne de votre fichier batch:

@echo off
echo Hey, I'm just doing some work for you.
pause

Vous donnera quelque chose comme ça en sortie:

Hé, je fais juste du travail pour toi.

Appuyez sur n'importe quelle touche pour continuer ...

Remarque: l' utilisation de @echo empêche de sortir la commande avant que la sortie ne soit imprimée.


0
rem Just use "pause" at the end of the batch file.
...
......
.......
pause

-1

mis à la fin il rouvrira votre console

start cmd 

Cela ne résout pas le problème, l'utilisateur veut garder la fenêtre ouverte, pas rouvrir une ancienne.
Adam

-5

Je viens d'appuyer sur Entrée et tapez Pause et cela fonctionne bien

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.