Puis-je exécuter un fichier de commandes Windows sans invite de commande visible?

Table des matières:

Puis-je exécuter un fichier de commandes Windows sans invite de commande visible?
Puis-je exécuter un fichier de commandes Windows sans invite de commande visible?

Vidéo: Puis-je exécuter un fichier de commandes Windows sans invite de commande visible?

Vidéo: Puis-je exécuter un fichier de commandes Windows sans invite de commande visible?
Vidéo: Ce Code Vous Donne Toutes Les Photos Et Vidéos Cachées Sur votre Téléphone - YouTube 2024, Avril
Anonim
Les fichiers batch sont un moyen pratique d'exécuter une série de commandes dans Windows, mais est-il possible de les exécuter de manière invisible en arrière-plan? Lisez la suite pour savoir comment.
Les fichiers batch sont un moyen pratique d'exécuter une série de commandes dans Windows, mais est-il possible de les exécuter de manière invisible en arrière-plan? Lisez la suite pour savoir comment.

La séance de questions et réponses d’aujourd’hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté.

La question

Le lecteur de SuperUser, Jake, veut exécuter un fichier BAT de manière invisible, il écrit:

I have installed a ruby gem called Redcar, which is launched from the command line. When it runs, it steals the shell until it terminates, so I have to create a new shell window to continue doing command line work. The shell I’m using is the GITBash shell from MySysGit.

I found a Redcar.bat file which is meant to launch Redcar as a shortcut, I presume, but I don’t want the extra command prompt window to open whenever I launch the BAT file.

How do I just run the BAT without seeing the prompt?

Existe-t-il une solution au désir furtif de Jake?

Les réponses

Afrazier, contributeur à SuperUser, répond avec une combinaison de mauvaises et de bonnes nouvelles:

You can’t - executing a batch file with the built in Command Prompt is going to keep a window open until the batch file exits.

What you can do is take steps to make sure that the batch file exits as quickly as possible. If at all possible, modify the batch file to run whatever program with the

start

commander. Par défaut,

start

retourne immédiatement sans attendre que le programme se termine, ainsi le fichier de commandes continuera à s'exécuter et, vraisemblablement, se fermera 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, qui contient de nombreux interprètes de script, le fichier de commandes attendra la fin du programme et

start

va engendrer une nouvelle fenêtre de console. Dans ce cas, vous devez exécuter la version Windows de l'interpréteur au lieu de la version console.

start

nécessaire. Pour Perl, vous courriez

wperl.exe

au lieu de

perl.exe

. Pour Python, c’est

pythonw.exe

au lieu de

python.exe

. L'ancienne distribution Win32 Ruby que j'ai téléchargée a

rubyw.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 sais donc rien de particulier à vous signaler.

Les lecteurs l'ont également dirigé vers un autre fil de discussion SuperUser qui explique comment utiliser un script Visual Basic pour aller au-delà de la réduction de la visibilité et masquer carrément l'invite CMD. Dans ce fil, Harry MC explique:

Solution 1:

Save this one line of text as file

invisible.vbs

:

CreateObject (“Wscript.Shell”). Exécutez “””” & WScript.Arguments (0) & “”””, 0, False

Pour exécuter n'importe quel programme ou fichier batch de manière invisible, utilisez-le comme ceci:

wscript.exe “C: Wherever invisible.vbs” “C: Un autre endroit MyBatchFile.bat”

Pour pouvoir également transmettre / relayer une liste d'arguments, utilisez uniquement deux guillemets doubles.

CreateObject (“Wscript.Shell”). Exécutez “” et WScript.Arguments (0) & “”, 0, False

Par exemple: Invisible.vbs “Kill.vbs ME.exe”

Solution 2:

Utilisez un outil de ligne de commande pour lancer un processus en mode silencieux: Silencieux.

L'utilisation de l'une des solutions ci-dessus, en fonction de votre niveau de confort d'utilisation de VBS, d'outils tiers ou non, réduira au minimum la visibilité de la fenêtre CMD ou la supprimera totalement.

Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.

Conseillé: