web-dev-qa-db-fra.com

Comment puis-je supprimer le «terminer le travail par lots» dans cmd.exe

Je recherche un mécanisme pour supprimer l'invitation "Terminer le travail par lots? (O/N)" que j'obtiens chaque fois que j'appuie sur CTRL-C dans un programme démarré à partir d'un fichier de commandes:

fichier de commandes: jsshell.bat:

@echo off
Java -jar build-scripts\contrib\rhino1.7R1.jar

puis le démarrer sur cmd Shell par:

> jsshell.bat

ce qui me donne un Shell qui peut être quitté par CTRL-C qui après la sortie me donne le méchant message

57
cellcortex

N'oubliez pas d'envisager de contourner le problème en évitant les scripts batch.

  • Macros Doskey peut remplacer les scripts batch à ligne unique comme celui cité ci-dessus. (Chargez-les dans votre Autorun script.)
  • Cscript.exe est disponible sur toutes les machines Windows modernes et peut exécuter des programmes JavaScript et VBScript à partir de la ligne de commande
  • Si vous ajoutez des extensions de fichier pour votre langage de script préféré (Perl, Python, Ruby, etc.) à votre variable d'environnement PATHEXT et ajoutez le script à votre chemin, vous pouvez les exécuter directement sans script batch.
7
Dan Fabulich

Sur ce site , j'ai enfin trouvé une solution efficace:

script.cmd < nul

Pour ne pas avoir à taper ceci à chaque fois que je crée un deuxième script appelé script2.cmd dans le même dossier avec la ligne ci-dessus. Vous voudrez peut-être inverser les noms. Fonctionne pour moi, mais testé jusqu'à présent sur XP uniquement.

24
Gringo Suave

Le comportement est implémenté dans le code source cmd.exe et n'est pas possible de désactiver sans modifier cmd.exe. Cependant, vous pouvez modifier cmd.exe pour ne pas afficher le message.

16
WireGuy

Oui, il existe un moyen plus élégant que de corriger cmd.exe. Mettez simplement START devant votre commande. Pour votre exemple, la ligne se lirait comme suit: "START Java -jar build-scripts\contrib\rhino1.7R1.jar"

8
user169852

FWIW, piping 'N' comme entrée pour une commande m'a fonctionné pour certains fichiers batch (mais je voulais en fait la nouvelle fenêtre). Peut-être que cela fonctionnera aussi pour vous.

(echo. N)| cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
7
Brad
@start cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
@exit

cela ne fera qu'une seule fenêtre

3
SH4773R

La modification ci-dessous supprime "Terminer le travail par lots? (O/N)" et la nouvelle fenêtre de la console:

start cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
3
Elmo

Essaye ça. Il ouvre une nouvelle console, mais il verrouille l'autre pendant qu'elle est ouverte.

@echo off
start /WAIT Java -jar build-scripts\contrib\rhino1.7R1.jar
1
nilskp