Si vous souhaitez exécuter plusieurs commandes avec 1 ligne, où vous commencez les commandes par start
, par exemple, si vous vouliez exécuter une commande comme ceci:
start "" netsh dump && pause
Ensuite, vous devez le faire en 2 étapes (une solution en une ligne est à la fin de cette réponse).
D'abord, écrivez les commandes dans un fichier batch temporaire (dans ce cas, vous pouvez utiliser &
ou &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-ou-
echo netsh dump ^& pause ^& exit>foobar.cmd
Remarquez que vous devez "échapper" chacun des "&"s
(esperluettes) avec un "^"
pour les traiter comme des caractères ordinaires dans la commande echo
. Alternativement, vous pouvez créer le fichier batch temporaire avec un éditeur de texte, tel que le Bloc-notes.
Ensuite, utilisez start
pour démarrer le fichier batch:
start "" foobar.cmd
-ou-
start "" "temporary foobar.cmd"
Note: La paire vide de guillemets est pour le "Title"
qui sera affiché dans la barre de titre de la fenêtre de commande que start
ouvrira. Cet argument de "Title"
est techniquement un argument optionnel pour start
, mais il est en fait requis, si la commande que start
exécutera est entre guillemets. Par exemple, dans le deuxième exemple:
start "" "temporary foobar.cmd"
si vous omettez la paire vide de guillemets comme ceci:
start "temporary foobar.cmd"
alors start
ouvrira une nouvelle fenêtre de commande, et utilisera "temporary foobar.cmd"
comme le "Title"
de la nouvelle fenêtre de commande, et rien ne sera exécuté dans la nouvelle fenêtre de commande.)
Si vous voulez que start
attende que le fichier batch soit terminé (après la dissipation du pause
), avant que start
ne se termine, alors vous devez ajouter l'option /w
à la commande start
:
start "" /w foobar.cmd
Vous pouvez mettre tout cela sur une ligne et même supprimer le fichier batch temporaire (foobar.cmd
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-ou-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
Remarquez que si vous allez supprimer le fichier batch temporaire, vous devez exécuter start
avec l'option /w
, sinon, le fichier batch temporaire sera probablement supprimé avant d'avoir eu la chance de s'exécuter.