J'ai un fichier batch qui démarre une application avec beaucoup de paramètres de ligne de commande:
"C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe" /port:1672 /path:"C:\Code.Net\My App\Iteration 6\REL_6.8.806_PerfEnhanceV\Fusion\Code\CC.Fusion\CC.Fusion.Services" /vpath:"/FusionServices"
Le problème est que lorsque j'exécute le fichier de commandes, la fenêtre DOS reste active jusqu'à ce que la commande se termine et j'aimerais qu'elle disparaisse. J'ai donc essayé d'utiliser la commande start
, mais en la plaçant devant, comme ceci:
start "C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe" /port:1672 /path:"C:\Code.Net\My App\Iteration 6\REL_6.8.806_PerfEnhanceV\Fusion\Code\CC.Fusion\CC.Fusion.Services" /vpath:"/FusionServices"
Mais je reçois une erreur indiquant que Invalid switch - "/port:1672"
J'ai également essayé d'échapper aux guillemets doubles, mais je n'ai pas réussi.
Comment puis-je résoudre ce problème?
Une oreille de lapin supplémentaire devrait faire l'affaire.
start "" "C:\Program...
START
considère le premier paramètre cité comme le titre de la fenêtre, à moins que ce soit le seul paramètre - et tous les commutateurs jusqu'au nom de l'exécutable sont considérés comme des commutateurs START
.
Je pense que cette autre réponse Stack Overflow résoudrait votre problème: Comment puis-je exécuter un fichier bat en arrière-plan à partir d'un autre fichier bat?
Fondamentalement, vous utilisez le /B
et /C
options:
START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1