Wie starte ich eine Anwendung, ohne in einer Batch-Datei zu warten?

155

Gibt es eine Möglichkeit, eine Anwendung auszuführen, ohne in der Batch-Datei zu warten? Ich habe den startBefehl ausprobiert, aber er erstellt nur ein neues Befehlsfenster.

Mark Attwood
quelle
3
Hinweis - für diejenigen tun beteiligten-ish Dinge mit Windows - Batch-Skripte: Wenn ein Prozess C wird startinnerhalb einer -ed call-ed .bat-Datei B (die wiederum von genannt war A ) und C geöffnet bleibt , nachdem B Oberflächen (zB C ist ein Dienst oder etwas, das nur darauf wartet, dass etwas passiert, und keinen festen Endpunkt hat, bis das Betriebssystem heruntergefahren wird. Das übergeordnete A, das das enthält, callkann möglicherweise nicht wie erwartet beendet werden, es sei denn, der Prozess C wird geschlossen oder ist es getötet. Hier ist ein einfaches Beispiel: codepad.org/KLglXDnZ
SeldomNeedy

Antworten:

305

Ich mache hier eine Vermutung, aber Ihre startAnrufung sieht wahrscheinlich so aus:

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

Dadurch wird ein neues Konsolenfenster geöffnet, in dem "\ Foo \ Bar \ Path mit Leerzeichen in der Datei \ program.exe" als Titel verwendet wird.

Wenn Sie startetwas verwenden, das von Anführungszeichen umgeben ist (oder sein muss), müssen Sie als erstes Argument leere Anführungszeichen setzen:

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

Dies liegt daran start, dass das erste zitierte Argument als Fenstertitel für ein neues Konsolenfenster interpretiert wird .

Joey
quelle
17
Toller Tipp mit doppelten Anführungszeichen vor dem eigentlichen Pfad. Ich hätte das nie gedacht. Ich danke Ihnen für das Teilen.
Alexandru Dicu
danke es hat geholfen. Ich habe auch die Option / SEPARATE verwendet, wie in ss64.com/nt/start.html
Ayusman
1
@ Ayusman: Diese Optionen gelten nur für 16-Bit-Programme. Ich hoffe sicherlich, dass Sie noch keine davon haben.
Joey
4
Natürlich müssen es keine leeren Anführungszeichen sein ... Sie können ihm einen tatsächlich relevanten Titel geben. Ich würde dies wärmstens empfehlen, da es anderen Menschen, die sehen, was los ist, viel klarer machen wird. start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
Shiser
1
Nach stundenlangem googeln finde ich endlich die Antwort. Vielen Dank!
Sellorio
9

Wenn Ihre Exe Argumente nimmt,

start MyApp.exe -arg1 -arg2
Shital Shah
quelle
8

Ich habe dafür start / b verwendet, anstatt nur zu starten, und es lief ohne Fenster für jeden Befehl, sodass nicht gewartet werden musste.

Ed Bayiates
quelle
Genau das, wonach ich gesucht habe!
Fábio Amorim
4

Wenn start nicht finden können, wonach es sucht, macht es das, was Sie beschreiben.

Da das, was Sie tun, funktionieren sollte, ist es sehr wahrscheinlich, dass Sie einige Zitate weglassen (oder Extras einfügen).

Egrunin
quelle
Ja, ich habe zwei Anführungszeichen gesetzt. Sie werden jedoch für lange Pfadnamen benötigt. Wie kann das Problem behoben werden?
Mark Attwood