Comment exécuter silencieusement Cmd.exe?

23

J'utilise le code ci-dessous dans la boîte de dialogue Exécuter de Windows XP.

cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe"

Vous pouvez remplacer le chemin d'accès au programme tout programme installé sur votre système. Le problème est que Photoshop se lance mais que la fenêtre cmd.exe se maintient. Je ne veux pas que le fichier cmd.exe apparaisse. Est-il possible de lancer un programme via cmd sans ouvrir une fenêtre cmd.exe? J'ai besoin de travailler en silence. BTW, j'ai besoin de ce code pour un programme. J'ai donc besoin de démarrer le programme via cmd mais sans fenêtre pop-up cmd.exe.

D'autres commentaires

Parce que je vais utiliser ce code dans un programme. Le programme peut lancer l'exe cmd. Mais le problème est que nous ne savons pas quelle version de Photoshop est installée. Il peut donc s'agir de Photoshop CS4 ou Photoshop CS5. Normalement, lorsque vous saisissez le code ci-dessous dans Exécuter, vous obtenez Photoshop peu importe celui qui est installé.

photoshop

Je veux donc lancer Photoshop avec cette méthode. Le programme lancera cmd comme Exécuter ci-dessus mais quelque chose comme ci-dessous:

cmd /c photoshop

Mais ça ne marche pas. Et même la fenêtre cmd apparaît. Je veux que le processus se déroule en silence. Nous ne devons pas non plus installer d'autre outil. Je veux une solution qui fonctionnera sur un Windows par défaut.

BinaryMisfit
la source
6
Pourquoi utiliser cmd.exe au lieu de simplement démarrer Photoshop directement, si vous ne voulez pas CMD en premier lieu?
CarlF
Essayez cmd.exe / q / c [commande]
qroberts
Non ça ne marchera pas. Vous l'essayez! En outre, ce serait la commande / q / c si quelque chose cmd / q / c "c: \ program files \ microsoft office \ office11 \ winword.exe" Remarquez que la fenêtre de commande apparaît. Il ne veut pas ça. Si vous l'auriez essayé, vous l'auriez su !!
barlop
3
Pas besoin de s'en fâcher. De plus, l'interrogateur est une femme, pas un homme.
qroberts
1
CMDOW fait censément cela.
CGA

Réponses:

22

Le problème est que l'invite de commande (cmd) ne peut pas se terminer - elle est bloquée sur l'écran en attendant la fin de Photoshop.

Pour lancer Photoshop dans un fichier bat et laisser le fichier batch continuer et se terminer, utilisez la commande de démarrage , qui démarre un programme ou une commande spécifié dans une fenêtre distincte .

Par exemple:

start "" "C:\Program Files\Adobe\Adobe Photoshop CS4\Photoshop.exe"
harrymc
la source
3
la commande de démarrage n'est-elle pas exécutée à partir d'une fenêtre de commande? dans ce cas, une fenêtre de commande aurait surgi. Je pense qu'une fois dans cmd.exe, le seul avantage pour commencer, serait qu'il vous permet de choisir si vous voulez le minimiser ou le maximiser .. mais s'il ne le veut pas du tout .. comment cela aiderait-il? Et si vous utilisez start from cmd.exe, il peut tout aussi bien taper le chemin du programme sans démarrer.
barlop
@barlop: Sans démarrage, le script est gelé jusqu'à la fin du programme. Au démarrage, le script peut se terminer et disparaître.
harrymc
par intérêt, que voulez-vous dire par le script .. voulez-vous dire qu'ils font démarrer blah.vbs "c: \ .... \ photoshop.exe"? et avoir blah.vbs (un fichier script) pour le démarrer?
barlop
@barlop: Je voulais juste dire l'ancien et le vrai fichier bat, que je suppose être ce que l'affiche utilise. J'ai changé le fichier script-> bat.
harrymc
5

HSTART http://www.ntwind.com/software/utilities/hstart.html

Tu peux faire

  • Démarrer, Exécuter
  • c:\hstart\hstart.exe /NOCONSOLE "cmd /c "c:\program files\microsoft office\office11\winword.exe""

ou créez une icône.

Certains l'utilisent pour exécuter des fichiers bat .. (d'autres le font à partir d'un vbs qui peut également l'exécuter avec cmd.exeet masquer la fenêtre de commande) .. mais vous pouvez utiliser hstart.

Cependant, j'en fais écho à d'autres, puisque vous exécutez un EXE, si vous lancez..run..pathofexe ou créez une icône pour cela, une invite de commande ne se lancera pas. Alors, pourquoi voulez-vous le démarrer à partir de cmd.exe?

Notez également que dans les dos et les fenêtres, vous utilisez des barres obliques inverses dans les chemins de répertoire. Les barres obliques sont destinées aux URL ou aux chemins de répertoire sous unix ou linux.

barlop
la source
Savez-vous ce qui hstartse passe? Comment cache-t-il la fenêtre créée?
Ross Rogers
1
@ RossRogers Je ne sais pas mais peut-être que API Monitor vous dirait apimonitor.com et aussi, vbscript peut aussi cacher une fenêtre. superuser.com/questions/62525/run-a-completly-hidden-batch-file et qui mentionne un programme appelé Quiet, de ce site joeware.net joeware.net/freetools/tools/quiet/index.htm qui mentionne que son programme utilise ShellExecuteEx pour le faire.
barlop
3

La meilleure option est de demander ce que vous essayez de faire. Si vous avez besoin du «code» pour un programme, pourquoi n'utilisez-vous pas l'exécution de Shell?

Et je ne peux pas imaginer quel flux de travail légitime nécessiterait l'appel de la ligne de commande, qui à son tour exécuterait un exécutable.

Devdatta Tengshe
la source
3

Il existe un outil appelé Quiet que vous pouvez utiliser pour y parvenir. Passez-y simplement votre fichier .exe ou .bat comme argument. Pour cela, créez simplement un raccourci de l'invite de commande cmd sur votre bureau. Obtenez ensuite les propriétés du raccourci d'invite de commandes que vous avez créé. Ensuite, dans l'onglet "Raccourci", remplissez le champ "Cible" comme ceci:

[pathToQuiet.exe] [pathToThe(.exe)/(.bat)file]

Si vous double-cliquez sur le raccourci, votre processus sera lancé et vous pourrez le vérifier via votre liste de processus, dans le gestionnaire de tâches.

Notez qu'il ne doit pas y avoir d'espace blanc dans le chemin d'accès à la fois à Quiet.exe et à votre fichier .exe ou .bat.

Mostafa
la source
Quietsemble fonctionner sur Windows NT jusqu'à XP. Ne dit rien sur Windows 10. Pensez-vous qu'il pourrait être sûr de l'utiliser sur Windows 10?
Henrik
@Henrik, que veux-tu dire par «sûr»? Cela ne le cassera pas. Il n'y a aucun mal à essayer!
barlop le
@Henrik Je ne ferai aucun mal, essayez-le.
Mostafa
2
cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe" %*

• le [chemin] \ nom de votre exécutable.
• tous les autres arguments nécessaires à votre script (% *) - Juste pour exécuter l'exe en arrière-plan.

user2361573
la source
Ça ne marche pas. Il affiche un message d'erreur "Le système ne peut pas trouver le fichier% *"
DavidPostill
Fonctionne sans la %*pièce.
Jin Kwon
1

Si vous souhaitez exécuter une commande puis quitter l'invite immédiatement, vous pouvez le faire ...

cmd / c "C: // Program Files / Adobe / Adobe Photoshop CS4 / Photoshop.exe" && exit

http://www.thewindowsclub.com/command-prompt-tricks-windows (voir exécuter plusieurs sections de commandes)

user472096
la source
0

Pourquoi ne pas l'utiliser?

cmd /c start "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe exit"
Bats92
la source
1
Pouvez-vous expliquer cette réponse plus en détail?
bwDraco
Après avoir essayé tout le reste, seulement cela a aidé. Merci. #include <windows.h> int main() { system("cmd /c start C:/WINDOWS/system32/notepad.exe"); }
James Koss
-2

J'ai finalement trouvé un moyen qui, au moins dans Windows 10, semble masquer / fermer les fenêtres cmd dans un raccourci pour lequel j'ai essayé de trouver une solution. Voici ce que j'utilise pour ouvrir des utilisateurs et des ordinateurs Active Directory via des runas avec une autre connexion de domaine.

runas.exe / savecred / user: domaine \ nom d'utilisateur "cmd / c start mmc C: \ Windows \ System32 \ dsa.msc"

peut-être que "cmd / c start" est une solution facile ...

Alyx Jones
la source
Pourquoi mentionnez-vous Windows 10. L'utilisateur utilisait Windows XP. Avez-vous au moins vérifié que cela fonctionne sur Windows XP?
Ramhound