Como iniciar um aplicativo sem esperar em um arquivo em lotes?


156

Existe alguma maneira de executar um aplicativo sem esperar no arquivo em lotes? Eu tentei o startcomando, mas ele apenas cria uma nova janela de comando.


3
Nota - para aqueles que fazem coisas complicadas com scripts em lote do Windows: se um processo C é started dentro de um callarquivo .bat -ed B (que por sua vez foi chamado de A ) e C permanece aberto após a conclusão de B (por exemplo, C é um serviço ou algo que apenas espera que as coisas aconteçam e não tem um ponto de extremidade fixo até que o sistema operacional seja desligado), o pai A que continha o callpode não ser capaz de terminar conforme o esperado, a menos que o processo C seja fechado ou seja morto. Aqui está um exemplo simples: codepad.org/KLglXDnZ
SeldomNeedy 8/15/15

Respostas:


306

Estou fazendo um palpite aqui, mas sua startchamada provavelmente se parece com isso:

start "\Foo\Bar\Path with spaces in it\program.exe"

Isso abrirá uma nova janela do console, usando "\ Foo \ Bar \ Path com espaços nele \ program.exe" como título.

Se você usa startalgo que é (ou precisa ser) entre aspas, é necessário colocar aspas vazias como o primeiro argumento:

start "" "\Foo\Bar\Path with spaces in it\program.exe"

Isso ocorre porque startinterpreta o primeiro argumento citado encontrado como o título da janela para uma nova janela do console.


17
Ótima dica com aspas duplas antes do caminho real. Eu nunca teria adivinhado isso. Obrigado por compartilhar.
Alexandru Dicu 15/10/12

obrigado ajudou. Eu também usei / opção separada conforme mencionado na ss64.com/nt/start.html
Ayusman

1
@ Ayusman: Essas opções são apenas para programas de 16 bits. Eu certamente espero que você ainda não tenha nenhum desses.
Joey

4
Obviamente, não precisa haver aspas vazias ... você pode atribuir um título relevante. Eu recomendaria isso fortemente, pois tornará muito mais claro para outras pessoas que vêem o que está acontecendo. start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
shiser

1
Depois de horas pesquisando no google, finalmente encontro a resposta. Obrigado!
Sellorio 27/10/14


8

Eu usei start / b para isso em vez de apenas start e ele foi executado sem uma janela para cada comando, portanto não houve espera.


Exatamente o que eu estava procurando!
Fábio Amorim

4

Se startnão consegue encontrar o que está procurando, faz o que você descreve.

Como o que você está fazendo deve funcionar, é muito provável que você deixe de lado algumas aspas (ou coloque extras).


Sim, eu coloquei duas citações. Mas eles são necessários para o nome do caminho longo. Como resolver o problema?
Mark Attwood
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.