Comment exécuter un fichier batch sans lancer une "fenêtre de commande" ?
Sous Windows XP, puis-je exécuter un fichier batch (.bat ou .cmd), via un raccourci, sans “fenêtre noire” ?
Sous Windows XP, puis-je exécuter un fichier batch (.bat ou .cmd), via un raccourci, sans “fenêtre noire” ?
Enregistrez ce qui suit en tant que wscript, par exemple, hidecmd.vbs après avoir remplacé “testing.bat” par le nom de votre fichier batch.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
Le second paramètre de oShell.Run
est la valeur de intWindowStyle
indiquant l'apparence de la fenêtre du programme et la valeur zéro est pour la fenêtre cachée.
La référence est ici http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
Il s'agit simplement d'une simplification de la réponse de Shaji. Vous pouvez exécuter votre script de traitement par lots au moyen d'un script VBScript (.vbs) comme ceci :
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Cela exécutera votre fichier de traitement par lots sans qu'aucune fenêtre de commande ne soit affichée.
Juste pour développer les réponses à la question “Utiliser le Windows Scripting” (que je considère comme le meilleur car il est déjà intégré), voici comment le faire en utilisant un seul script wrapper et en passant le nom du “vrai” fichier batch en paramètre. Des paramètres supplémentaires seront transmis au fichier batch.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
Ainsi, par exemple, enregistrez le fichier ci-dessus sous le nom NoShell.vbs
quelque part puis appelez :
NoShell.vbs c:\foo\my_batch_file.bat
Enfin, si vous cherchez à exécuter ce programme depuis un endroit qui ne comprend pas le fichier .vbs (comme un “External Tools” dans Visual Studio), vous voudrez appeler C:\Windows\System32\wscript.exe
avec le fichier vbs comme premier paramètre et votre fichier batch comme second.
Free GPL open source “Create Hidden Process” http://www.commandline.co.uk/chp/
Microsoft Security Essentials, et probablement la plupart des autres scanners de virus/malware traiteront l'exécutable, chp.exe, comme un virus parce qu'il cache tout programme que vous spécifiez de l'affichage d'une fenêtre ou d'un bouton de la barre des tâches, tout comme le font les virus.
Ce n'est pas un virus. Il ne cache pas le processus cible pour qu'il n'apparaisse pas dans le gestionnaire de tâches par exemple. Et bien sûr, le code source est inclus pour que vous puissiez voir qu'il est très petit et ne fait rien d'autre que de lancer le programme que vous lui donnez.
Vous n'avez même pas besoin de croire que le chp.exe inclus a vraiment été construit à partir de cette source. Vous pouvez vous débarrasser du fichier chp.exe inclus et compiler le vôtre à partir des sources, et tous les outils nécessaires pour le faire sont même gratuits et téléchargeables. Vous pouvez aussi simplement créer un raccourci vers le fichier .bat ou .cmd, puis faire un clic droit sur le raccourci, Propriétés, onglet Raccourci, Exécuter : Minimisé. Ensuite, dans les tâches planifiées, utilisez directement le raccourci au lieu du fichier .bat/.cmd. Cela empêchera l'ouverture d'une fenêtre, mais un bouton de la barre des tâches apparaîtra tout de même.
Vous pouvez utiliser des scripts de fenêtre tels que AutoIt .
Par exemple, il suffit d'écrire ceci dans l'éditeur de scripts AutoIt. C'est assez simple
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Si vous voulez l'exécuter en boucle,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
Compilez le en .exe - et c'est tout.
De même, dans AutoHotkey :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Solution simple, sans utiliser de programmes supplémentaires.
Bonne chance !
Utilisez Hidden Start (coûte 20 $)
Hidden Start - Run Applications and Batch Files without a Console Window or UAC Prompt
Les applications de la console et les fichiers batch sont régulièrement exécutés au démarrage de Windows ou selon un calendrier. Le principal inconvénient est que chaque application ouvre une fenêtre de console qui clignote à l'écran. Hidden Start (ou Hstart) est un utilitaire de ligne de commande léger qui vous permet d'exécuter des applications de console et des fichiers batch sans aucune fenêtre en arrière-plan, de gérer l'élévation des privilèges UAC sous Windows 7 et Vista, de lancer plusieurs commandes en parallèle ou de manière synchrone, et bien plus encore.