Se você deseja executar vários comandos com 1 linha, onde está iniciando os comandos start
, por exemplo, se você deseja executar um comando como este:
start "" netsh dump && pause
Em seguida, você precisa fazer isso em duas etapas (a solução de uma linha está no final desta resposta).
Primeiro, escreva os comandos em um arquivo em lotes temporário (nesse caso, você pode usar &
ou &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Observe que você precisa "escapar" de cada um "&"s
(e comercial) com a "^"
para permitir que eles sejam tratados como caracteres comuns no echo
comando. Como alternativa, você pode criar o arquivo em lotes temporário com um editor de texto, como o Bloco de Notas.
Em seguida, use start
para iniciar o arquivo em lote:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Nota: O par vazio de aspas duplas é o "Title"
que será mostrado na barra de título da janela de comando que start
será aberta. Este "Title"
argumento é tecnicamente um argumento opcional para start
, mas é realmente necessário , se o comando que start
será executado estiver entre aspas duplas. Por exemplo, no segundo exemplo:
start "" "temporary foobar.cmd"
se você deixar de fora o par vazio de aspas duplas como este:
start "temporary foobar.cmd"
em seguida start
, abrirá uma nova janela de comando e usará "temporary foobar.cmd"
como a nova janela de comando "Title"
, e nada será executado na nova janela de comando.)
Se você deseja start
aguardar a conclusão do arquivo em lotes (depois que o arquivo pause
for descartado), antes de start
concluir, adicione a /w
opção ao start
comando:
start "" /w foobar.cmd
Você pode juntar tudo isso em uma linha e até remover (excluir) o arquivo em lotes temporário ( 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
Observe que, se você deseja excluir o arquivo em lotes temporário, é necessário executar start
com a /w
opção; caso contrário, o arquivo em lote temporário provavelmente será excluído antes que ele possa ser executado.
&
e&&
só funciona no Windows 'cmd.exe
- o que não é DOS.