Cette question a déjà une réponse ici:
Sous Windows XP, puis-je exécuter un fichier de traitement par lots (.bat ou .cmd), via un raccourci, sans "fenêtre noire"?
Cette question a déjà une réponse ici:
Sous Windows XP, puis-je exécuter un fichier de traitement par lots (.bat ou .cmd), via un raccourci, sans "fenêtre noire"?
Réponses:
Enregistrez les éléments suivants sous wscript, par exemple, hidecmd.vbs après avoir remplacé "testing.bat" par le nom de votre fichier de traitement par lots.
Le deuxième paramètre de
oShell.Run
estintWindowStyle
valeur indiquant l'apparence de la fenêtre du programme et la valeur zéro correspond à la fenêtre masquée.La référence est ici http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
la source
.bat
fichier en tant qu'administrateur à l'aide de cette méthode?Ceci est juste une simplification de la réponse de Shaji. Vous pouvez exécuter votre script batch par le biais d’un script VBScript (.vbs) comme celui-ci:
Ceci exécutera votre fichier de commandes sans fenêtre de commande.
la source
.bat
fichier en tant qu'administrateur en utilisant cette méthode?Pour développer les réponses "Utiliser les scripts Windows" (ce que je considère le mieux, car elles sont déjà intégrées), voici comment procéder en utilisant un seul script d'encapsuleur et en transmettant le nom du fichier batch "réel" en tant que paramètre. Des paramètres supplémentaires seront transmis au fichier de commandes.
Par exemple, sauvegardez le fichier ci-dessus
NoShell.vbs
quelque part puis appelez:Enfin, si vous souhaitez exécuter cette opération depuis un endroit qui ne comprend pas le fichier .vbs (tel qu'un "Outils externes" dans Visual Studio), vous voudrez appeler
C:\Windows\System32\wscript.exe
avec le fichier vbs comme premier paramètre et votre fichier batch comme le second.la source
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
."C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Peu importe ce que je cherche pour le chemin - des guillemets doubles autour de tout,% 20 à la place de l'espace, ou une combinaison de ces deux choses, rien ne fonctionne. Je reçois un message d'erreur m'indiquant que le fichier est introuvable ou que rien ne se produit. Cela est-il dû à une erreur de l'utilisateur, à une limitation de Windows avec le champ Cible pour les raccourcis, ou à un problème avec le script vbs dans lequel il ne gère pas correctement les chemins de fichiers contenant des espaces?Vous pouvez modifier les propriétés du raccourci pour une exécution réduite.
Pour l'exécuter de manière totalement invisible, vous aurez besoin de quelque chose d'autre, comme Windows Scripting.
la source
Utilisez start avec l'option '/ B'. Par exemple:
la source
start /b
exécutera simplement le programme dans la console actuellement allouée au lieu d'en créer un nouveau. De toute façon, vous en aurez un nouveau puisque le lot doit fonctionner avec cmd (ce qui [surprise] ouvre une console).SYSTEM
en C / C ++).cmd /c foo.cmd
. Il n'y a absolument aucun besoin d'utiliserstart
dans ces scénarios, et, je dirais que celasystem
ne devrait pas être utilisé en faveur deCreateProcess
. En lançant un fichier de commandes, vous êtes déjà dépendant d'une plate-forme. Vous pouvez également utiliser les meilleurs outils pour le travail.cmd /c
auparavant. La commande cmd est ce dont j'avais besoin dans mon cas, mais toutes les réponses stackexchange que j'ai trouvées jusqu'à présent, à propos d'un fichier de commandes exécutant un autre fichier de commandes, ont les meilleures réponses pour commencer ...start /b go.bat
n'allouera pas une nouvelle console (c'est-à-dire une instance de conhost.exe - ou un thread dans csrss.exe avant Windows 7). Toutefois, cela va créer un désordre, car le script de traitement par lots est exécuté avec une nouvelle instance de cmd.exe qui est attachée à la même console . Les deux instances du shell entreront en compétition pour lire les entrées de la console, généralement en alternance. Il faut/w
(par exemplestart /b /w go.bat
) attendre la deuxième instance, ce qui revient à utilisercmd /c
si vous utilisezsystem
. Aussi, si vous appelezCreateProcess
, lancezgo.bat
directement. Il n'y a pas besoin decmd /c
.Open Source GPL libre "Créer un processus caché"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials et probablement la plupart des autres analyseurs de virus / programmes malveillants traitent l'exécutable, chp.exe, comme un virus, car il dissimule le programme que vous spécifiez lorsque vous affichez une fenêtre ou un bouton de la barre des tâches, comme le font les virus.
Ce n'est pas un virus. Cela n'empêche pas le processus cible d'apparaître dans le gestionnaire de tâches, par exemple. Et bien sûr, le code source est inclus afin que vous puissiez voir qu'il est très petit et ne fait rien sauf exécuter 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 continuer et supprimer le fichier chp.exe inclus et compiler le vôtre à partir de la source. Tous les outils nécessaires pour le faire sont même gratuits et téléchargeables.
Vous pouvez également créer un raccourci vers le fichier .bat ou .cmd, puis cliquer avec le bouton droit de la souris sur le raccourci, Propriétés, Onglet Raccourci, Exécuter: Réduit. Ensuite, dans les tâches planifiées, utilisez directement le raccourci au lieu du fichier .bat / .cmd. Cela empêchera une fenêtre d'apparaître, mais un bouton de la barre des tâches apparaîtra quand même.
la source
Vous pouvez utiliser un script de fenêtre tel que AutoIt .
Par exemple, écrivez simplement cela dans l'éditeur de script AutoIt. C'est assez simple
Si vous voulez l'exécuter en boucle,
Compilez-le en tant que .exe - et vous avez terminé.
De même, dans AutoHotkey :
la source
Utilisez un départ caché (coûte 20 $)
la source
Solution simple, sans utiliser de programmes supplémentaires.
Bonne chance!
la source