Comment éviter la fenêtre de commande de sauter sur cmd.exe
J'ai une commande comme:
cmd.exe /c ping 1.1.1.1 -n 1 -w 10000 && echo second command goes here
Mais lors de l'exécution, il s'ouvre une fenêtre de commande. Est-il un moyen pour éviter la fenêtre de commande de popping up?
PS: je ne peut pas supprimer cmd.exe à partir de là. Comme vous pouvez le voir, je suis en train de lier deux commandes l'une après l'autre, dans la même chaîne.
Grâce.
Edit: Désolé. Ce n'est pas un fichier bat. Je veux exécuter 2 commandes dans le "UninstallString" de msiexec. J'ai essayé tellement de choses que ma question est un peu emporté.
La commande est:
msiexec <product> <package> && reg delete /xxx
Clairement, vous pouvez supprimer cmd.exe. Au lieu de placer des restrictions sur les réponses possibles, je vous suggère de supprimer ces restrictions.
Les fichiers Batch toujours ouvrir les fenêtres de console. Si c'est un problème, vous pouvez envisager d'utiliser VBScript à la place. Plus de la lecture ici: Comment puis-je créer un fichier de commandes Windows qui ne montre pas l'Invite de Commande lors de l'exécution?
Les fichiers Batch toujours ouvrir les fenêtres de console. Si c'est un problème, vous pouvez envisager d'utiliser VBScript à la place. Plus de la lecture ici: Comment puis-je créer un fichier de commandes Windows qui ne montre pas l'Invite de Commande lors de l'exécution?
OriginalL'auteur sambha | 2013-06-21
Vous devez vous connecter pour publier un commentaire.
L'option la plus simple est de commencer la chose minimisé. Cible Du Raccourci:
ou
Ce n'est pas cachée ou quoi que ce soit, mais il n'apparaît pas sur le bureau ou—pire encore—de voler la mise au point.
Si vous voulez que la fenêtre d'aller loin sur son propre, "cmd /c ..." va faire que cela se produise. "cmd /k ..." va laisser la fenêtre ouverte.
Plan B est mentionné par @CodyGray dans le SU lien qu'il a posté. Il existe des programmes qui ne pas ouvrir les fenêtres, comme wperl, pythonw, ou wscript (disponibles en mode natif sur Windows). Si vous pouvez passer votre commande à l'une de ces choses, alors vous pourriez effectivement double-cliquez sur l'icône et exécuter en "en silence."
Si Perl est disponible, je serais certainement aller avec cela, car vous pouvez créer de certains assez puissant one-liners qui n'aura pas besoin de créer d'autres fichiers.
Dans votre exemple, vous êtes le chaînage de commandes, ce dernier est une notification. Si vous ne voulez pas d'avoir une fenêtre ouverte pour la première commande, il serait maladroit de le faire pour la seconde lorsque vous êtes en avertir l'utilisateur de quelque chose. Avoir le processus d'appel "cmd /c start cmd /c @echo Tout est OK" serait probablement le faire, mais en utilisant CMD de windows pour un utilisateur de notification n'est probablement pas quelque chose que le HCI gars sourient.
Merci.cmd /c START /MIN cmd /c <command1> && <commande2> il l'a fait. Le chaînage des commandes a été important. Je veux mettre plusieurs commandes dans une chaîne de caractères fournie par MS pour msiexec uninstallstring. echo était juste un exemple de commande (pas) j'ai pris pour la question.
OriginalL'auteur mojo
Non, tous les fichiers de commandes ouverte dans la ligne de commande windows; cela n'a rien à voir avec la présence de
cmd.exe
dans votre fichier. Un fichier batch est tout simplement un certain nombre de commandes de ligne de commande, un par ligne.Je ne comprends pas pourquoi vous écrivez
test.bat
la façon dont vous le faites. Je préfère attendreSi, pour certains bizzare raison, vous avez vraiment besoin de n'utiliser qu'une seule ligne, vous pouvez simplement faire
OriginalL'auteur Andreas Rejbrand
Comme Andreas Rejbrand déjà expliqué, la fenêtre d'invite de commande n'est pas de l'explicite
cmd.exe
invocation au sein de votre script, mais de l'exécution de la.bat
script lui-même. (Et en dépit de votre demande, vous n'avez fourni aucune preuve pourquoi faire référence explicitementcmd.exe
est nécessaire. Le point de l'ensemble d'un.bat
script est à lot commandes.)Cela dit, la silentbatch programme que Paul Mineur et j'ai écrit peut exécuter des scripts batch et de supprimer la fenêtre d'invite de commande. Pour l'utiliser, vous devez créer un raccourci Windows qui appelle
silentbatch.exe test.bat
et double-cliquez sur celui-ci plutôt que de double-cliquer surtest.bat
directement, cependant.Il appelle
CreateProcess
sur le script, mais des ensembles deSTARTUPINFOW::wShowWindow
àSW_HIDE
(et éventuellement redirige stdout et stderr dans un fichier journal). Le code source est inclus avec elle.Mon mauvais. Édité à la question.
OriginalL'auteur jamesdlin
Vous pouvez également créer un raccourci de vous script batch, puis dans les propriétés sélectionnez pour démarrer l'application minimisée. C'est expliqué ici: CNET: Comment faire pour démarrer automatiquement un programme réduit au minimum dans Windows
Étape 1: faites un clic Droit sur le raccourci du programme que vous voulez lancer réduite et sélectionnez Propriétés.
Étape 2: Cliquez sur le menu déroulant sous l'Exécuter.
Étape 3: Sélectionnez "Minimisé", puis cliquez sur le bouton OK.
OriginalL'auteur San