Si vous voulez exécuter plusieurs commandes sur une seule ligne, où vous commencez les commandes par start
, par exemple, si vous voulez exécuter une commande comme celle-ci :
start "" netsh dump && pause
Alors, vous devez le faire en 2 étapes (la solution sur une ligne se trouve à la fin de cette réponse).
D'abord, écrivez les commandes dans un fichier temporaire par lot (dans ce cas, vous pouvez utiliser &
ou &&
) :
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Notez que vous devez “échapper” chacun des "&"s
(esperluettes) avec un "^"
pour leur permettre d'être traités comme des caractères ordinaires dans le echo
command.  ; Vous pouvez aussi créer le fichier temporaire par lot avec un éditeur de texte, tel que Notepad.
Ensuite, utilisez start
pour lancer le fichier batch :
start "" foobar.cmd
-or-
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 le start
ouvrira. L'argument "Title"
est techniquement un argument optionnel pour start
, mais il est en fait requis , si la commande que start
va exécuter est entre guillemets. Par exemple, dans le deuxième exemple :
start "" "temporary foobar.cmd"
si vous laissez la paire de guillemets vides comme ceci :
start "temporary foobar.cmd"
alors start
ouvrira une nouvelle fenêtre de commande, et utilisera "temporary foobar.cmd"
comme nouvelle fenêtre de commande "Title"
, et rien ne sera exécuté dans la nouvelle fenêtre de commande).
Si vous voulez que start
attende la fin du fichier batch (après que le pause
soit rejeté), avant que start
ne se termine, alors vous devez ajouter le /w
à la commande start
:
start "" /w foobar.cmd
Vous pouvez rassembler tout cela sur une seule ligne et même supprimer (effacer) le fichier temporaire (foobar.cmd
) :
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
Notez que si vous voulez supprimer le fichier temporaire, vous devez exécuter start
avec le commutateur /w
, sinon, le fichier temporaire sera probablement supprimé avant d'avoir pu être exécuté.