web-dev-qa-db-fra.com

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

J'ai deux fichiers de commandes, 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 batch 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 après l'exécution du fichier de traitement par lots. Maintenant, il se ferme, a essayé de jouer autour des drapeaux cmd, aucun résultat.

Plate-forme: Windows7


MISE À JOUR 1

La structure modifiée, l’exemple simple comme celui-ci ne fonctionne pas aussi bien, Un seul fichier de commandes, c’est-à-dire qu’il n’existe pas de 2. "Quelque autre fichier de commandes" Le seul fichier de commandes contient un tel fichier.

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

MISE À JOUR 2

Le même raccourci qui est appelé à partir d’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 bloqué dans la barre des tâches

Des idées sur la façon de garder la fenêtre de la console ouverte? 

99
deimus

Si c'est vraiment le cas du fichier de commandes, supprimez le cmd /K et ajoutez PAUSE.

start /B /LOW /WAIT make package
PAUSE

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

METTRE À JOUR

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

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

  1. Commencez par épingler un raccourci pour CMD.EXE dans la barre des tâches en appuyant sur le bouton Démarrer, puis tapez "cmd" dans la zone de recherche, faites un clic 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 comprenant "Invite de commandes" et "Supprimer le programme de la barre des tâches".
  4. Cliquez avec le bouton droit sur l'icône pour CMD.EXE et sélectionnez Properties.
  5. Dans la zone Cible, allez à la fin de "%SystemRoot%\system32\cmd.exe" et tapez " /C ", ainsi que le chemin et le nom du fichier batch.

Pour vos besoins, vous pouvez soit:

  1. Utilisez /C et mettez une PAUSE à la fin de votre fichier de commandes.

    OU

  2. Changez la ligne de commande pour utiliser /K et supprimez la PAUSE de votre fichier de commandes.
117
aphoria

Ici:

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

Regardez ce que vous faites:

  1. (cmd/K) Démarrer une nouvelle instance cmd.
  2. (& pause) Pause l'instance CURRENT cmd.

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

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

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».

6
Sai

Dans la dernière ligne du fichier de commandes que vous voulez garder ouverte, mettez un

pause >nul

4
Bali C

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

' & pause'
3
Umberto

Vous pouvez simplement mettre un pause commande dans la dernière ligne de votre fichier de commandes:

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

Vous donnera quelque chose comme ceci en sortie:

Hey, je fais juste du travail pour vous.

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

Remarque: L'utilisation de @echo empêche la sortie de la commande avant l'impression de la sortie.

1
Patrick H.
rem Just use "pause" at the end of the batch file.
...
......
.......
pause
0
David Castro