Cette question a déjà une réponse ici:
J'ai installé une gemme rubis appelée Redcar, lancée à partir de la ligne de commande. Quand il fonctionne, il vole le shell jusqu’à ce qu’il se termine, je dois donc créer une nouvelle fenêtre de shell pour continuer à faire du travail en ligne de commande. Le shell que j'utilise est le shell GITBash de MySysGit.
J'ai trouvé un fichier Redcar.bat destiné à lancer Redcar en tant que raccourci, je suppose, mais je ne souhaite pas que la fenêtre d'invite de commande supplémentaire s'ouvre à chaque lancement du fichier BAT.
Comment puis-je simplement exécuter la BAT sans voir l'invite?
set var1=hello.txt
ligne 2:start "test" notepad.exe "%~dp0%var1%"
::
ou@REM
. Source: superuser.com/a/843754/101936Réponses:
Vous ne pouvez pas - exécuter un fichier de commandes avec l'invite de commandes intégrée laissera une fenêtre ouverte jusqu'à la fermeture du fichier de commandes.
Ce que vous pouvez faire est de prendre des mesures pour vous assurer que le fichier de commandes se termine le plus rapidement possible. Si possible, modifiez le fichier de commandes pour exécuter le programme avec la
start
commande. Par défaut,start
retourne immédiatement sans attendre que le programme se termine. Le fichier de commandes continuera donc à s'exécuter et, vraisemblablement, à se terminer immédiatement. Ajoutez à cela la modification de votre raccourci pour exécuter le fichier de commandes minimisé et vous ne verrez que la barre des tâches clignoter sans même voir une fenêtre à l'écran.Un inconvénient à cela est que si vous exécutez un programme en mode console, ce qui correspond à de nombreux interprètes de script, le fichier de commandes attendra la fin du programme et
start
générera une nouvelle fenêtre de console. Dans ce cas, vous devez exécuter la version de l'interpréteur basée sur Windows au lieu de celle basée sur la console -start
inutile. Pour Perl, vous courriezwperl.exe
au lieu deperl.exe
. Pour Python, c'est aupythonw.exe
lieu depython.exe
. L'ancienne distribution Win32 Ruby que j'ai téléchargée arubyw.exe
, qui devrait faire la même chose.Une dernière possibilité consiste à utiliser un outil tiers pour exécuter l'invite de commande avec une fenêtre masquée. J'ai entendu parler de telles choses, mais je ne les ai jamais utilisées. Je ne connais donc rien de particulier à vous signaler.
la source
Je pense que c'est la solution la plus simple et la plus courte pour exécuter un fichier de commandes sans ouvrir la fenêtre DOS. Cela peut être très gênant lorsque vous souhaitez planifier l'exécution périodique d'un ensemble de commandes; la fenêtre DOS ne cesse de s'afficher, voici la solution . Utilisez un script VB pour appeler le fichier de commandes ...
Copiez les lignes ci-dessus dans un éditeur et enregistrez le fichier avec l’extension .VBS. Modifiez le nom du fichier .BAT et son chemin en conséquence. Ensuite, lancez le fichier .vbs et la magie opère!
la source
Vous pouvez exécuter un autre fichier de commandes avec START / MIN CMD.EXE / C mybatchfile.bat à partir de l'invite de commande.
De l'extérieur, la fenêtre de la console cmd apparaîtra, mais pour éviter cela, vous pouvez créer un fichier de raccourci avec les propriétés modifiées pour un démarrage minimisé .
la source
Pour ce faire, utilisez le programme Bat To Exe Converter pour convertir votre fichier de commandes en un fichier exécutable.
Lors de la conversion en un exécutable, vous trouverez une option permettant d’exécuter votre fichier en tant qu’application invisible dans la section Visibilité. Ainsi, lorsque vous l'exécutez, il s'exécutera sans fenêtre.
la source
En continuant sur la réponse de Dennis Williamson, vous pouvez éditer le fichier de commandes et ajouter (préfixer)
START /B
à la commande que vous exécutez.Par exemple, j'ai un fichier de commandes qui fonctionne avec du mastic et qui a le même problème (CMD supplémentaire), voici comment je l'ai écrit:
Cela a fonctionné parfaitement.
la source
Essayez ceci:
note ajoutée par barlop
début /? dit de / B
la source
Je ne comprends pas bien votre problème, mais avec certains de mes fichiers de commandes, j’utilise un «dumy» dont le seul but est de lancer le fichier de commandes principal.
Donc, GO.BAT aura:
La sortie ferme la fenêtre d'invite de commande qui, sinon, resterait ouverte.
Et GO2.BAT aura le contenu du fichier de commandes que je souhaite.
la source
Vous pouvez utiliser RunHiddenConsole
hideExec.bat
la source
Si vous ne souhaitez toujours pas afficher la fenêtre de la console, voici une solution de stackoverflow qui a fonctionné pour moi (dans mon cas, je n'ai rien mis dans le registre, mais là où j'avais besoin).
la source
Il suffit de placer le commutateur / b en face du chemin. Cela n'ouvrira pas la deuxième invite de commande.
la source
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 via le script, empêchant ainsi la fenêtre CMD de se produire. Il y a cependant quelques mises en garde:
Si votre lot nécessite des droits d'administrateur, créez ou utilisez un lot existant qui appelle VBS et exécutez ce lot en tant qu'administrateur.
En l'absence de visibiité, il peut être difficile de déterminer si ce que vous essayez de faire fonctionne réellement comme vous le souhaitez.
Cela dit, je mettrais d’abord une petite maquette / unité de test pour s’assurer que tout fonctionne exactement comme vous le souhaitez, avant de l’intégrer.
la source
J'ai utilisé cmdow par le passé, et il semble avoir fonctionné pour ce que je veux.
Vous voudrez probablement utiliser l’une des options suivantes:
CMDOW [window] /HID
/HID
cache la fenêtre spécifiéeCMDOW [window] /END
/END
ferme la fenêtre spécifiéeCMDOW [window] /CLS
/CLS
demande poliment à la fenêtre de se fermer (certaines fenêtres peuvent ouvrir une boîte de dialogue)J'espère que cela t'aides.
la source
Créez simplement un raccourci vers le fichier de commandes, cliquez dessus avec le bouton droit de la souris, cliquez sur
Properties
, allez à l'General
onglet, cochez la case intituléeHidden
, cliquez surApply
, puis surOK
.Maintenant que vous ouvrez le raccourci, le fichier de commandes caché sera exécuté.
la source