web-dev-qa-db-fra.com

Utilisation de la commande "start" avec les paramètres transmis au programme démarré

J'ai une machine virtuelle dans Virtual PC 2007.

Pour le démarrer depuis le bureau, j'ai la commande suivante dans un fichier de commandes:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

Mais cela laisse une invite DOS sur la machine hôte jusqu'à ce que la machine virtuelle s'éteigne et que je quitte la console Virtual PC. C'est ennuyeux.

J'ai donc changé ma commande pour utiliser la commande START, à la place:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Mais cela étouffe les paramètres transmis à Virtual PC.

START /? indique que les paramètres vont effectivement à cet endroit. Quelqu'un at-il déjà utilisé START pour lancer un programme avec plusieurs arguments de ligne de commande?

212
JosephStyons

START présente une particularité impliquant des guillemets doubles autour du premier paramètre. Si le premier paramètre a des guillemets doubles, il l'utilise comme TITRE facultatif pour la nouvelle fenêtre.

Je crois que ce que tu veux c'est:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

En d’autres termes, donnez-lui un titre vide devant le nom du programme pour le simuler.

442
Tim Farley

Au lieu d'un fichier de commandes, vous pouvez créer un raccourci sur le bureau.

Définissez la cible sur:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

et vous êtes tous ensemble. Puisque vous ne lancez pas une invite de commande pour le lancer, il n’y aura pas de boîte DOS.

15
Ferruccio

Les espaces sont des problèmes de DOS/CMD, vous devriez donc aller dans le chemin via:

cd "c:\program files\Microsoft Virtual PC"

puis démarrez simplement VPC via:

start Virtual~1.exe -pc MY-PC -launch

~1 signifie le premier exe avec "Virtual" au début. Donc, s'il y a "Virtual PC.exe" et "Virtual PC1.exe", le premier serait le Virtual~1.exe et le second Virtual~2.exe et ainsi de suite.

Ou utilisez un client VNC comme VirtualBox.

3
ghostdog21

Si vous devez utiliser un guillemet double à n’importe quel paramètre, vous pouvez obtenir l’erreur "" c:\chemin d'accès "n'est pas reconnu par une commande interne ou externe, un programme utilisable ou un fichier de commandes". Je suggère la solution ci-dessous lorsqu’on utilise un double point d’attente: https://stackoverflow.com/a/43467194/383564

0
Mustafa Kemal

Aucune de ces réponses n'a fonctionné pour moi.

Au lieu de cela, je devais utiliser la commande Call:

Call "\\Path To Program\Program.exe" <parameters>

Je ne suis pas sûr que cela attend la fin des travaux ... le fichier C++ redistribuable que j'installais a été suffisamment rapide pour que cela n'ait pas d'importance

0

La réponse dans "particularité" est correcte et répond directement à la question. Comme TimF a répondu, le premier paramètre étant entre guillemets, il est traité comme un titre de fenêtre.

Notez également que les options de Virtual PC sont traitées comme des options de la commande "start" elle-même et ne sont pas valides pour "start". Cela est vrai pour toutes les versions de Windows qui ont la commande 'start'.

Ce problème avec 'commencer' à traiter le paramètre cité comme un titre est encore plus énervant que le problème affiché. Si vous exécutez ceci:

start "some valid command with spaces"

Vous obtenez une nouvelle fenêtre d'invite de commande, avec le résultat évident pour un titre de fenêtre. Encore plus ennuyeux, cette nouvelle fenêtre n’hérite pas des polices, des couleurs ou de la taille de la fenêtre personnalisées, c’est juste la valeur par défaut pour cmd.exe.

0
BitDreamer

Vous pouvez utiliser des guillemets en utilisant le [/D"Path"], utilisez /Dniquement pour spécifier le chemin et non le chemin + programme. Il semble que tout le code sur la même ligne qui suit retourne à la normale, ce qui signifie que vous n'avez pas besoin de séparer chemin et fichier.

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

ou:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

va commencer IE avec la page Web par défaut.

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com

commence par Bing, mais ne réinitialise pas votre page d'accueil.

/D signifie "répertoire" et l'utilisation des guillemets est OK!

MAUVAIS EXEMPLE:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

donne:

ERROR " Le répertoire en cours n'est pas valide. "

/D ne doit être suivi que d'un chemin de répertoire. Puis espace et le fichier de commandes ou le programme que vous souhaitez démarrer/exécuter

Testé et fonctionne sous XP, mais Windows Vista/7/8 peut nécessiter quelques ajustements du contrôle de compte d'utilisateur.

-Mrbios

0
Mrbios