Come avviare un'applicazione senza attendere in un file batch?


156

Esiste un modo per eseguire un'applicazione senza attendere in un file batch? Ho provato il startcomando ma crea semplicemente una nuova finestra di comando.


3
Nota - per coloro che fanno cose coinvolte con gli script batch di Windows: se un processo C è start-ed all'interno di un callfile .bat -ed B (che a sua volta è stato chiamato da A ), e C rimane aperto dopo che B termina (diciamo C è un servizio o qualcosa che aspetta solo che succeda qualcosa e non ha un endpoint fisso fino allo spegnimento del sistema operativo), il genitore A che conteneva callpotrebbe non essere in grado di terminare come previsto a meno che il processo C non si chiuda o ucciso. Ecco un semplice esempio: codepad.org/KLglXDnZ
SeldomNeedy

Risposte:


306

Sto facendo un'ipotesi qui, ma la tua startinvocazione probabilmente assomiglia a questo:

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

Questo aprirà una nuova finestra della console, usando "\ Foo \ Bar \ Path con spazi in esso \ program.exe" come titolo.

Se usi startqualcosa che è (o deve essere) circondato da virgolette, devi inserire virgolette vuote come primo argomento:

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

Questo perché startinterpreta il primo argomento citato che trova come titolo della finestra per una nuova finestra della console.


17
Ottimo consiglio con virgolette doppie prima del percorso effettivo. Non avrei mai immaginato questo. Grazie per aver condiviso.
Alexandru Dicu,

grazie mi ha aiutato. Ho anche usato l'opzione / SEPARATE come menzionato in ss64.com/nt/start.html
Ayusman

1
@Ayusman: queste opzioni sono solo per i programmi a 16 bit. Spero sicuramente che tu non abbia nessuno di quelli ancora in giro.
Joey,

4
Certo, non devono essere virgolette vuote ... puoi dargli un titolo reale pertinente. Lo consiglio vivamente in quanto renderà molto più chiaro alle altre persone che vedono cosa sta succedendo. start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
shiser,

1
Dopo ore di ricerche su Google, finalmente trovo la risposta. Grazie!
Sellorio,


8

Ho usato start / b per questo invece di semplicemente start e ha funzionato senza una finestra per ogni comando, quindi non c'era attesa.


Esattamente quello che stavo cercando!
Fábio Amorim,

4

Se startnon riesci a trovare quello che sta cercando, fa quello che descrivi.

Dal momento che ciò che stai facendo dovrebbe funzionare, è molto probabile che stai tralasciando alcune virgolette (o inserendo extra).


Sì, ho messo due citazioni. Ma sono richiesti per il nome del percorso lungo. Come risolvere il problema?
Mark Attwood,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.