Comment désactiver la fermeture automatique de l'invite de commande à la fin?

18

Je sais qu'il y avait quelques astuces avec les anciennes versions de Windows pour y parvenir, mais je ne suis pas sûr sur Windows 7.

Si j'avais un logiciel qui exécute une commande avec des commutateurs entraînant l'ouverture et la fermeture rapide d'une fenêtre cmd.exe, comment puis-je reconfigurer l'invite de commande pour NE PAS fermer automatiquement une fois la tâche terminée.

L'astuce ici est que la commande en cours d'exécution est en effet un fichier batch, comprend une instruction de pause à la fin, mais la façon dont le logiciel essaie d'exécuter la commande échoue. Comme il se ferme si rapidement, nous ne savons pas quelle erreur est renvoyée car il se ferme si rapidement.

Mythiques
la source
Bonne question, je souhaitais également savoir cela car, parfois, des correctifs de jeu / logiciel entrent dans des fichiers .BAT se fermant après l'exécution des instructions sans pause et affichant les commandes exécutées à l'utilisateur final.
Boris_yo
1
Pourquoi ne pas ouvrir une fenêtre de commande, cd dans ce répertoire et exécuter le lot à partir de là? Cela s'exécuterait dans la même fenêtre cmd non fermée qui resterait ouverte à la fin du lot. Cela pourrait vous donner des indices pour le déboguer.
2012
Merci slhck, vous m'indiquant que cet emplacement semble être la possibilité la plus proche de réaliser ce que je veux dans le registre pour batfile / cmdfile.
Mythics

Réponses:

8

Au lieu d'exécuter ce .batfichier directement à partir de l'Explorateur ou de toute autre méthode que vous utilisez, lancez manuellement cmd.exe(si nécessaire avec des privilèges élevés), puis exécutez votre .batfichier à partir de là. Ensuite, à la fin de son exécution, vous verrez toujours toutes les sorties ... comme au bon vieux temps DOS. :)

Mxx
la source
Appuyez sur start et tapez cmdet appuyez sur enter, vous lancerez une invite de commande. Faites simplement glisser et déposez ce dont vous avez besoin pour exécuter (votre script python ou .exe) dans les fenêtres cmd et appuyez sur enter.
JinSnow
6

Dans votre fichier .bat, utilisez la pausecommande. Cela empêchera la fermeture de votre fichier .bat.

Par exemple, voici mon fichier bat que j'utilise pour démarrer le service MySQL sur mon PC:

net start MySQL
pause

Remarque: sous Windows 7, je démarre ce fichier .bat à partir du nom de l'administrateur. Pour ce faire, cliquez avec le bouton droit de la souris sur votre fichier .bat et choisissez "Démarrer à partir du nom de l'administrateur" dans le menu déroulant.

Nikita
la source
5

Vous devez utiliser le commutateur / k lors de l'appel.

Détails utiles ici .

Shevek
la source
1

Dans les scripts .bat, vous laissez la «sortie» à la fin du script pour laisser la fenêtre de commande ouverte.

Une fenêtre de commande ouverte par un script se ferme toujours à la fin du script car elle dépend du script. L'ouverture de la fenêtre vous-même et l'exécution du script ne ferme la fenêtre que si vous avez spécifié la commande "exit" à la fin du script car la fenêtre ne dépend pas du script.

Il ne semble pas qu'il existe un moyen d'empêcher la fermeture d'une fenêtre dépendante du script une fois le script terminé dans Windows 7. Il est toutefois possible que des messages d'erreur soient enregistrés ailleurs. Le programme a-t-il un fichier journal? Ou y a-t-il des entrées dans les journaux Windows?

music2myear
la source
0
pause>nul

cela devrait fonctionner.

Répondre
la source
2
Veuillez relire attentivement la question. Votre réponse ne répond pas à la question d'origine. "L'astuce ici est que la commande en cours d'exécution est en effet un fichier batch, comprend une instruction de pause à la fin ",
DavidPostill
0

Appuyez sur startet tapez cmdet appuyez sur enter, vous lancerez une invite de commande. Glissez et déposez simplement ce dont vous avez besoin pour exécuter (votre script python, .exe ...) dans les fenêtres cmd et appuyez sur Entrée. (Si vous devez exécuter la cmd en tant qu'administrateur, recherchez la cmd dans le menu Démarrer, faites un clic droit dessus, choisissez run as admin) (Fonctionne sur Windows 7)

JinSnow
la source
Veuillez ne pas poster la même réponse à plusieurs questions. Si la même information répond vraiment aux deux questions, alors une question (généralement la plus récente) doit être fermée en double de l'autre. Vous pouvez l'indiquer en votant pour le fermer comme doublon ou, si vous n'avez pas assez de réputation pour cela, lever un drapeau pour indiquer qu'il s'agit d'un doublon. Sinon, adaptez votre réponse à cette question et ne collez pas simplement la même réponse à plusieurs endroits.
DavidPostill
0

J'avais ce problème depuis un moment maintenant et j'ai finalement réalisé ce qui se passait.

Lorsque vous démarrez une tâche avec le planificateur de tâches et qu'il s'agit d'un fichier de chauve-souris, cela ouvrira la fenêtre cmd à C: \ WINDOWS \ system32 et NON où se trouve le fichier de chauve-souris. Pourquoi? Je n'ai aucune idée! Donc ce que je devais faire était d'ajouter le répertoire avec cd dans le fichier bat.

Exemple ci-dessous:

cd c: \ blahblahblah

startmyprogram.exe

user38300
la source
Votre réponse crée beaucoup de confusion et vous ne pouvez pas établir la raison du problème rencontré par OP. Mieux vaut vous référer ce lien superuser.com/help/how-to-answer , vous aidera en répondant.
Rajesh S