Exécution d’un CMD ou d’une BAT en mode silencieux

Comment puis-je exécuter un fichier CMD ou .bat en mode silencieux? Je cherche à empêcher l’interface CMD d’être affichée à l’utilisateur.

J’ai proposé dans StackOverflow question un moyen d’ exécuter un fichier de commandes en arrière-plan ( aucune fenêtre DOS affichée )

Cela devrait répondre à votre question.

C’est ici:


À partir de votre premier script, appelez votre deuxième script avec la ligne suivante:

wscript.exe invis.vbs run.bat %* 

En fait, vous appelez un script vbs avec:

  • le [chemin] \ nom de votre script
  • tous les autres arguments nécessaires à votre script ( %* )

Ensuite, invis.vbs appellera votre script avec la méthode Windows Script Host Run () , qui prend:

  • intWindowStyle: 0 signifie “fenêtres invisibles”
  • bWaitOnReturn: false signifie que votre premier script n’a pas besoin d’attendre la fin de votre deuxième script

Voir la question pour le script invis.vbs complet:

 Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False ^ means "invisible window" ---| 

Mise à jour après les commentaires de Tammen:

Si vous êtes dans une session DOS et que vous souhaitez lancer un autre script “en arrière-plan”, un simple /b (détaillé dans la même question ci-dessus ) peut suffire:

Vous pouvez utiliser start /b second.bat pour lancer un deuxième fichier de commandes de manière asynchrone à partir de votre premier partage de la première fenêtre.

Inclure la phrase

@echo off

tout en haut de votre script bat.

Utilisez Advanced Converter to EXE Converter à partir de http://www.battoexeconverter.com

Cela vous permettra d’intégrer des fichiers binarys supplémentaires avec votre fichier de commandes dans un fichier EXE complètement silencieux et ses logiciels gratuits.

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 distrayant lorsque vous souhaitez programmer un ensemble de commandes à exécuter périodiquement. . Utilisez un script VBS pour appeler le fichier de commandes …

 Set WshShell = CreateObject("WScript.Shell" ) WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 Set WshShell = Nothing 

Copiez les lignes ci-dessus dans un éditeur et enregistrez le fichier avec l’extension .VBS. Modifiez le nom du fichier .BAT et le chemin d’access en conséquence.

Utilisez Bat To Exe Converter pour le faire

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(Choisissez le lien de téléchargement direct )

1 – Ouvrir Bat to Exe Converter, sélectionnez votre fichier Bat.
2 – Dans le menu Option, sélectionnez “Application invisible”, puis appuyez sur le bouton de compilation.

Terminé!

Essayez SilentCMD . Ceci est un petit programme freeware qui exécute un fichier de commandes sans afficher la fenêtre d’invite de commandes.

Si je veux lancer la commande promt en mode silencieux, alors il y a une simple commande vbs:

 Set ws=CreateObject("WScript.Shell") ws.Run "TASKKILL.exe /F /IM iexplore.exe" 

Si je voulais ouvrir une URL en cmd en silence , alors voici un code:

 Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0) 'wait 10 seconds WScript.sleep 10000 Set ws=CreateObject("WScript.Shell") ws.Run "TASKKILL.exe /F /IM iexplore.exe" 

Je suis assez convaincu que j’aime le mieux cette méthode. Copiez et collez le code ci-dessous dans un fichier .vbs. À partir de là, vous appelez le fichier de commandes … assurez-vous de modifier la dernière ligne pour spécifier le chemin et le nom du fichier de commandes (qui doit contenir le fichier que vous souhaitez lancer ou exécuter les actions requirejses).

 Const HIDDEN_WINDOW = 12 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = HIDDEN_WINDOW Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("C:\PathOfFile\name.bat", null, objConfig, intProcessID) 

Cela a vraiment fonctionné pour moi. Les commentaires sont les bienvenus 🙂

Je suis créé RunApp pour faire un tel travail et aussi l’utiliser dans mon env de production, en espérant que cela aide.

La configuration comme ci-dessous:

fichier: config.arg

 :style:hidden MyBatchFile.bat arg1 arg2 

Et lancez runapp.exe place.