Page d'accueil » comment » 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?

    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 superutilisateur Jake veut exécuter un fichier BAT de manière invisible, il écrit:

    J'ai installé une gemme rubis appelée Redcar, lancée à partir de la ligne de commande. Lorsqu'il s'exécute, il vole le shell jusqu'à ce qu'il se termine. Je dois donc créer une nouvelle fenêtre de shell pour continuer à exécuter le 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 comme 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?

    Y a-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:

    Vous ne pouvez pas - l'exécution d'un fichier de commandes avec l'invite de commande intégrée laissera une fenêtre ouverte jusqu'à la fermeture du fichier de commandes.

    Ce que vous pouvez Pour ce faire, assurez-vous que le fichier de commandes se ferme le plus rapidement possible. Si possible, modifiez le fichier de commandes pour exécuter le programme avec le début commander. Par défaut, début 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, ce que beaucoup d’interprètes de script sont, le fichier batch attendra la fin du programme, et en utilisant début 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. début 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 connais donc rien de particulier pour vous indiquer.

    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:

    Enregistrer cette ligne de texte en tant que fichier 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:.

    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 complètement..


    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.