Je cherche un moyen d'exécuter un fichier de commandes (.bat) sans que rien ne soit visible pour l'utilisateur (pas de fenêtre, pas de nom de barre des tâches, .etc ..).
Je ne veux pas utiliser un programme pour faire ça, je cherche quelque chose de plus propre. J'ai trouvé une solution qui utilise VBScript, mais je n'aime pas trop utiliser VBS.
windows
command-line
batch-file
Moayad Mardini
la source
la source
Réponses:
Solution 1:
Enregistrez cette ligne de texte sous forme de fichier
invisible.vbs
:Pour exécuter n'importe quel programme ou fichier batch de manière invisible, utilisez-le comme ceci:
Pour pouvoir également transmettre / relayer une liste d'arguments, utilisez uniquement deux guillemets doubles.
Exemple:
Invisible.vbs "Kill.vbs ME.exe"
Solution 2:
Utilisez un outil de ligne de commande pour lancer un processus en mode silencieux : Quiet , hidecon ou hideexec .
la source
&
signifie concaténer des chaînes. Les chaînes sont entourées de guillemets doubles ("
). Les guillemets consécutifs (""
) à l'intérieur des délimiteurs de chaîne signifient un guillemet double ("
). Ainsi, quatre guillemets doubles (""""
) seraient un littéral de chaîne d'un caractère, un guillemet double ("
). Rassemblez-le et"""" & WScript.Arguments(0) & """"
deviendrait"<argument>"
où<argument>
est le premier argument de ligne de commande transmis au script.wscript.exe "C:\Wherever\invisible.vbs" ...
intérieur?Pour masquer des fichiers de commandes ou des fichiers de commandes ou des fichiers .... Utilisez l’
IExpress.exe
utilitaire intégré de Windows XP pour générer un fichier .exe à partir du fichier de commandes. Lors de l'utilisation,IExpress
assurez-vous de cocher l'option d'exécution cachée et de cocher toutes les cases pour ne rien montrer. Après avoir créé votre fichier .exe, placez-le dans le dossier de commande d'exécution que vous choisissez et vous ne le verrez jamais apparaître.la source
use Cmdow est un utilitaire de ligne de commande Win32 pour NT4 / 2000 / XP / 2003 qui permet aux fenêtres d’être répertoriées, déplacées, redimensionnées, renommées, cachées / non masquées, désactivées / activées, réduites au minimum, agrandies, restaurées, activées / inactivées, fermées, tuées et supprimées. plus.
Exécuter un fichier de commandes caché en lui passant les paramètres: -
la source
Si votre fichier de traitement par lot peut contenir une seule ligne et autant de caractères, utilisez simplement un raccourci en cliquant avec le bouton droit de la souris sur un dossier placé dans un répertoire aléatoire. Cliquez sur les propriétés et sous la cible, entrez ce que vous mettriez habituellement dans un fichier chauve-souris. Et Bobs ton oncle!
Avantages:
Les inconvénients:
la source
Exécutez le script via at at sans le rendre interactif:
Une autre solution, si cela ne vous dérange pas d'installer quelque chose comme Python, vous pouvez simplement créer un script et l'exécuter avec
pythonw
(la version liée pour les opérations d'interface graphique). Puisque vous n'utilisez aucune API graphique, la fenêtre ne s'affichera pas. Utilisez simplement des appels àos.system()
et cela imitera un script batch, car cela revient à taper les chaînes dans la ligne de commande.Exemple:
la source
Vous pouvez l'exécuter facilement.
la source
Sous Windows 7, vous pouvez utiliser le panneau de configuration "Tâche planifiée" pour planifier l’exécution d’un fichier de commandes en arrière-plan de manière invisible avec les autorisations spécifiées et même en tant que compte "SYSTÈME". Voir la capture d'écran ci-dessous:
En outre, même si le nombre de fonctionnalités est réduit, vous pouvez également créer une tâche de script de traitement par lots invisible à partir de la ligne de commande à l'aide de la commande "AT.exe" sans l'option "/ interactive".
la source
Je n'aime pas la solution VBScript.
Téléchargez et copiez nircmd.exe dans votre
%systemroot%\system32
dossier, puis ajoutez cette commande à la première ligne de votre lot:ou personnalisez d'abord l'intitulé de votre lot avec la
title
commande suivante pour éviter de masquer toutes lescmd
fenêtres, comme ceci:la source
On dirait que quelqu'un a dressé une liste des 7 à 8 façons de fonctionner en mode silencieux:
la source
Vous pouvez également créer un script AutoHotkey :
la source
ENCORE, à partir de C / C ++, utilisez la fonction CreateProcess avec l'indicateur CREATE_NO_WINDOW. Il a beaucoup de puissance supplémentaire qui n'est pas montrée ici. C'est juste le minimum dont vous avez besoin pour remplacer system () ou la famille _spawn ().
la source
L’excellent Bat To Exe Converter convertira votre fichier
.bat
ou.cmd
fichier en.exe
fichier.Il a une interface utilisateur simple. Vous pouvez choisir de ne pas avoir de fenêtre de console en sélectionnant l'option «Application invisible». En outre, il vous permet d’affecter une icône, des fichiers associés au package et plusieurs autres options.
Voici une capture d'écran de la fenêtre principale de l'interface:
Notez que cette image est obsolète. Il présente la version 2.4.8 et, à compter de septembre 2018, le site Web propose la version 3.0.10.0 (dernière mise à jour le 2018-03-23).
Attention: le site Web www.f2ko.de est lié à
coinhive.com
, ce qui est largement identifié comme un malware .la source
Je l'ai fait avec succès avec nircmd de cette façon:
nircmd.exe win hide ititle "cmd.exe"
Maintenant, vous aurez un fichier .exe qui, après avoir cliqué dessus et l’installé, fera fonctionner votre .bat totalement caché.
la source
la source
'cmdow' is not recognized as an internal or external command, operable program or batch file.
Vous n'avez pas besoin de faire de spécial.
Si vous exécutez les fichiers de commandes à partir d'un service Windows, vous devez les masquer par défaut, sauf si vous activez l'option "Autoriser le service à interagir avec le Bureau" sur le service.
la source
Créez votre script batch avec votre logique batch et vos commandes, puis créez un nouveau fichier avec une
.VBS
extension, utilisez la logique ci-dessous (exemple fourni ci-dessous) et branchez simplement le chemin complet vers votre fichier.CMD
ou.BAT
avec lesPING -t <IPAddress>
commandes, etc. il exécute le lot de manière cachée et n’affiche pas la fenêtre de commande lorsqu’il est exécuté.Où la logique dans l'exemple ci-dessous spécifie de
C:\Folder\BatchFileName.cmd
changer cela pour pointer vers le script batch avec vos commandes que vous exécutez manuellement, etc. maintenant.Enregistrez le
.VBS
fichier et planifiez-le avecTask Scheduler
Problèmes lors de la planification d'une tâche sur Windows7 afin qu'elle s'exécute selon un calendrier indéfini, adapté à vos besoins.Sinon, il vous suffit de double-cliquer sur le
.VBS
fichier pour exécuter laPING
commande infinie que vous avez insérée dans le fichier de commandes sur lequel vous le dirigez .REMARQUE: Je crois que c'est ici que j'ai obtenu cette logique de script, mais il fonctionne de manière fiable dans le même but que vous avez ici: vous assurer que la fenêtre de commande est masquée lors de l'exécution d'un fichier de commandes. Source d'erreur serveur
EXEMPLE DE LIGNE DE COMMANDE D'EXÉCUTION DE SCRIPT VBS VISANT UNE FENÊTRE CMD
la source
Ici, j’ai compilé toutes les méthodes que je connais pour démarrer un processus caché avec batch sans outils externes.Avec un script prêt à l’emploi (dont certains sont assez riches en options), et tous forment une ligne de commande.Le Le PID est renvoyé. Les outils utilisés sont IEXPRESS, SCHTASKS, WScript.Shell, Win32_Process et JScript.Net.
la source
Malgré que j'ai déjà répondu à ceci, voici une autre approche. La différence est que le script batch peut se masquer lui-même lors de son exécution. Vous aurez cependant besoin de deux scripts supplémentaires - windowMode.bat et getCMDPid.bat (les deux contiennent du
.net
code). Voici comment alors peut être utilisé:la source
J'ai eu le même problème, mais j'ai compris:
Shell("filehere" & "parametersforbatchfilehere", vbHidden)
la source
J'ai commencé à essayer de comprendre cela et je n'ai jamais vraiment réussi. C'était aussi proche que j'ai eu:
la source
J'avais besoin de cacher la fenêtre pour un fichier de commandes appelé à partir d'un menu contextuel de l'explorateur, mais aussi d'ajouter des guillemets sur le paramètre. Aucune des réponses n’ayant fonctionné pour moi, j’ajoute ma propre solution.
J'avais ceci sur la "commande" du registre pour un menu contextuel de l'explorateur:
Donc, pour le remplacer, je devais créer un vbs comme celui-ci:
Enregistrez dans un endroit comme
C:\mypath\myscript.vbs
et appelez-le comme ceci dans le registre:Notez que le chemin d'accès .bat ne peut pas avoir d'espaces, remplacez-le donc par le nom de fichier 8.3. Donc, par exemple,
C:\Program Files\myprogram.bat
doivent être référencés commeC:\Progra~1\myprogram.bat
. Pour voir le nom de fichier 8.3, utilisezdir /x
la source
J'ai 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:
fichier: config.arg
Et lance à la
runapp.exe
place.la source
Cela fonctionne pour Windows 8 (éventuellement d'autres)
cliquez sur appliquer
Cliquez sur le raccourci et il fonctionnera mais vous ne le verrez pas :)
la source