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
N'oubliez pas d'envisager de contourner le problème en évitant les scripts batch.
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.
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.
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"
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
@start cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
@exit
cela ne fera qu'une seule fenêtre
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
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