Comment puis-je exécuter un fichier CMD ou .bat en mode silencieux? Je cherche à empêcher que l'interface CMD soit montrée à l'utilisateur.
J'ai proposé à StackOverflow question un moyen de exécuter un fichier batch en arrière-plan (aucune fenêtre DOS affichée)
Cela devrait répondre à votre question.
C'est ici:
Depuis 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:
%*
)Ensuite, invis.vbs appellera votre script avec la méthode Script Script Host Run () , qui prend:
Voir la question pour le script complet invis.vbs:
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 voulez lancer un autre script "en arrière-plan", un simple /b
(comme détaillé dans la même question susmentionnée ) peut suffire:
Vous pouvez utiliser
start /b second.bat
pour lancer un deuxième fichier batch de manière asynchrone à partir de votre premier fichier partageant la fenêtre de votre premier.
Inclure la phrase
@echo off
tout en haut de votre script chauve-souris.
Utilisez Advanced BAT to EXE Converter à partir de http://www.battoexeconverter.com
Cela vous permettra d’incorporer tous les fichiers binaires supplémentaires avec votre fichier de commandes dans un fichier EXE autonome entièrement silencieux et ses logiciels gratuits.
Utilisez Bat To Exe Converter pour le faire
http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(Choisir Lien de téléchargement direct)
1 - Ouvrez Bat to Exe Converter, sélectionnez votre fichier Bat.
2 - Dans le menu Options, sélectionnez "Application invisible", puis appuyez sur le bouton Compiler.
Terminé!
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. . 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 son chemin en conséquence.
Essayez SilentCMD. Ceci est un petit programme gratuit qui exécute un fichier de commandes sans afficher la commande Invite window.
Si je veux exécuter la commande promt en mode silencieux, il existe une simple commande vbs:
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
si je voulais ouvrir une url dans 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 confiant que j'aime cette méthode le meilleur. Copiez et collez le code ci-dessous dans un fichier .vbs. À partir de là, vous appelez le fichier de commandes ... alors assurez-vous de modifier la dernière ligne pour spécifier le chemin et le nom du fichier de commandes (qui devrait contenir le fichier que vous souhaitez lancer ou effectuer les actions que vous souhaitez effectuer).
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 définitivement fonctionné pour moi. Les commentaires sont les bienvenus :)
Je suis créé RunApp pour faire un tel travail et l'utiliser également dans mon environnement de production, j'espère que cela aidera.
La config comme ci-dessous:
file: config.arg
:style:hidden
MyBatchFile.bat
arg1
arg2
Et lancez runapp.exe
à la place.