69 votes

Comment créer un fichier batch Windows qui n'affiche pas l'invite de commande lors de son exécution ?

J'ai installé une gemme ruby appelée Redcar, qui est lancée depuis la ligne de commande. Lorsqu'elle s'exécute, elle vole la Shell jusqu'à ce qu'elle se termine, je dois donc créer une nouvelle fenêtre Shell pour continuer à faire du travail en ligne de commande. Le Shell que j'utilise est le Shell de GITBash de MySysGit.

J'ai trouvé un fichier Redcar.bat qui est censé lancer Redcar comme un raccourci, je suppose, mais je ne veux pas que la fenêtre d'invite de commande supplémentaire s'ouvre chaque fois que je lance le fichier BAT.

Comment puis-je exécuter le BAT sans voir l'invite ?

5voto

Damian Powell Points 315

Essayez ceci :

START /B batchfile

note ajoutée par barlop

début / ? dit de /B

 B           Start application without creating a new window. The
             application has ^C handling ignored. Unless the application
             enables ^C processing, ^Break is the only way to interrupt
             the application.

3voto

therube Points 1366

Je ne comprends pas bien votre problème, mais avec certains de mes fichiers batch, j'utilise un "dumy" dont le seul but est de lancer le fichier batch principal.

Donc GO.BAT aura :

cmd /c go2.bat %1 %2 %3
exit

La sortie ferme la fenêtre de l'invite de commande qui resterait autrement ouverte.

Et GO2.BAT aura le contenu réel du fichier batch que je souhaite.

  @echo off
  set userid=

  if NOT [%1]==[] goto userid:
  set /p userid=Enter USERID:  
  goto set_usr:

 :userid
 set userid=%1
 shift

 :set_usr
 if %userid%==steven goto steven:
 ...

3voto

Jens A. Koch Points 320

Vous pourriez utiliser RunHiddenConsole

hideExec.bat

@echo off
RunHiddenConsole batch.bat

1voto

Erram Points 160

Il suffit de mettre le commutateur /b devant le chemin. Cela n'ouvrira pas la deuxième invite de commande.

0voto

kayleeFrye_onDeck Points 220

La réponse d'Indago a été la meilleure solution pour moi jusqu'à présent. Le fichier VBS me permet d'exécuter la fonctionnalité du lot par le biais du script, empêchant ainsi la fenêtre CMD de se produire en premier lieu. Il y a cependant quelques mises en garde :

  1. Si votre lot nécessite des droits d'administrateur, créez ou utilisez un lot existant qui appelle le VBS et exécutez ce lot en tant qu'administrateur.

  2. Sans visibilité, il peut être difficile de discerner si ce que vous essayez de faire fonctionne réellement comme vous le souhaitez.

Cela dit, je mettrais d'abord en place une petite configuration fictive ou un test unitaire pour m'assurer que tout fonctionne exactement comme vous le souhaitez, avant de l'intégrer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X