2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134

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” ?

Réponses (9)

88
88
88
2010-05-11 19:55:49 +0000

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

45
45
45
2012-02-15 09:52:03 +0000

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.

21
21
21
2014-01-10 17:50:44 +0000

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.

9
9
9
2010-05-11 19:50:45 +0000

Vous pouvez modifier les propriétés du raccourci pour l'exécuter en mode minimisé.

Pour l'exécuter de manière totalement invisible, vous aurez besoin d'autre chose, comme le Windows Scripting.

9
9
9
2010-05-11 17:36:13 +0000

Utilisez start avec l'option ‘/B’. Par exemple :

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

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.

6
6
6
2013-05-29 03:48:54 +0000

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
6
6
6
2014-10-27 08:23:11 +0000

Solution simple, sans utiliser de programmes supplémentaires.

  1. Créez le fichier batch que vous voulez exécuter et testez-le.
  2. Créez un raccourci pour ce fichier.
  3. Modifiez les propriétés du raccourci : dans l'onglet Raccourci, choisissez Exécuter en mode minimisé. Assignez-lui un raccourci clavier et vous avez terminé !

Bonne chance !

5
5
5
2010-05-12 16:03:41 +0000

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.