
48046
17.05.2007, aktualisiert um 15:12:26 Uhr
Batch beenden
Hi Community !
Hab ein kleines Problem mit dem Beenden der Batch.
Mein Script läuft problemlos bis zum Ende ab. Am Ende möchte ich noch ein Tool starten und dann automatisch das DOS-Fenster beenden lassen. Im Normalfall funktioniert das auch, hab ein EXIT ans Ende gesetzt und gut wars. Doch nun hat sich die Situation etwas geändert, da der aufzurufende Startpfad Leerzeichen enthält, mußte ich ihn in "" einbetten.
Dadurch führt der Befehl START die Zeile nicht mehr aus, bzw. ruft das angegebene Tool nicht auf und beendet auch nicht automatisch das DOS-Fenster (weil er halt hier abbricht, läuft das Script nicht mehr weiter bis zum nächsten EXIT Befehl).
Einzige Möglichkeit die einigermaßen funktioniert ist, dass ich den Befehl START komplett entferne. Dadurch wird zwar dann wenigstens das Tool gestartet, aber ein Beenden des DOS-Fenster ist natürlich nicht machbar, weil das Script ja jetzt die Terminierung abwartet und erst dann zu EXIT weiterlaufen würde. Nur, das aufzurufende Tool soll ja nicht geschlossen werden.
Bin da irgendwie in einer Zwickmühle. Das ganze ist zwar nicht so tragisch, eher ein Schönheitsfehler, nur es stört halt
Ohne "" funktioniert einwandfrei mit automatischen Beenden des Fensters:
start %Pfad%\xyz.exe
Mit "" funktioniert leider nicht mehr:
start "%Pfad%"\xyz.exe
Einzige Alternative (aber ein Beenden gibts dann auch nicht, da xyz.exe nicht beendet werden soll):
"%Pfad%"\xyz.exe
Hoffe es weiß einer von Euch eine Lösung zu diesem Schönheitsfehler.....!?
P.S. Hab auch schon einen anderen Weg probiert, indem ich zuerst mit cd "%Pfad%" zum Ziel springen wollte und dann mit START xyz.exe aufrufen wollte. Aber das scheitert daran, dass das Ziel auf einem anderen Laufwerk liegt, und cd wechselt ja NUR Ordnerebenen und keine Laufwerke. Jetz könnte man ja sagen, ich wechsle vorher per Befehl aufs entsprechende Laufwerk, aber leider ist das Laufwerk nicht fest vorgegeben und kann auch variabel sein.
Gruß ELMI
Hab ein kleines Problem mit dem Beenden der Batch.
Mein Script läuft problemlos bis zum Ende ab. Am Ende möchte ich noch ein Tool starten und dann automatisch das DOS-Fenster beenden lassen. Im Normalfall funktioniert das auch, hab ein EXIT ans Ende gesetzt und gut wars. Doch nun hat sich die Situation etwas geändert, da der aufzurufende Startpfad Leerzeichen enthält, mußte ich ihn in "" einbetten.
Dadurch führt der Befehl START die Zeile nicht mehr aus, bzw. ruft das angegebene Tool nicht auf und beendet auch nicht automatisch das DOS-Fenster (weil er halt hier abbricht, läuft das Script nicht mehr weiter bis zum nächsten EXIT Befehl).
Einzige Möglichkeit die einigermaßen funktioniert ist, dass ich den Befehl START komplett entferne. Dadurch wird zwar dann wenigstens das Tool gestartet, aber ein Beenden des DOS-Fenster ist natürlich nicht machbar, weil das Script ja jetzt die Terminierung abwartet und erst dann zu EXIT weiterlaufen würde. Nur, das aufzurufende Tool soll ja nicht geschlossen werden.
Bin da irgendwie in einer Zwickmühle. Das ganze ist zwar nicht so tragisch, eher ein Schönheitsfehler, nur es stört halt
Ohne "" funktioniert einwandfrei mit automatischen Beenden des Fensters:
start %Pfad%\xyz.exe
Mit "" funktioniert leider nicht mehr:
start "%Pfad%"\xyz.exe
Einzige Alternative (aber ein Beenden gibts dann auch nicht, da xyz.exe nicht beendet werden soll):
"%Pfad%"\xyz.exe
Hoffe es weiß einer von Euch eine Lösung zu diesem Schönheitsfehler.....!?
P.S. Hab auch schon einen anderen Weg probiert, indem ich zuerst mit cd "%Pfad%" zum Ziel springen wollte und dann mit START xyz.exe aufrufen wollte. Aber das scheitert daran, dass das Ziel auf einem anderen Laufwerk liegt, und cd wechselt ja NUR Ordnerebenen und keine Laufwerke. Jetz könnte man ja sagen, ich wechsle vorher per Befehl aufs entsprechende Laufwerk, aber leider ist das Laufwerk nicht fest vorgegeben und kann auch variabel sein.
Gruß ELMI
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59216
Url: https://administrator.de/forum/batch-beenden-59216.html
Ausgedruckt am: 22.04.2025 um 20:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo Elmi55!
Wie Du der Hilfe zu "start" entnehmen kannst, wird der erste unter Anführungszeichen stehende Begriff als Fenstertitel interpretiert - es sollte also genügen,
zu schreiben.
Anmerkung hinsichtlich "cd" und Wechsel des Laufwerks: Zum Einen könntest Du den Schalter /D verwenden, um auch das Laufwerk zu wechseln, zum Anderen gäbe es auch noch "pushd".
Und noch einer: Wenn %Pfad% mit einem Laufwerksbuchstaben begint, kannst Du diesen mit der Schreibweise %Pfad:~0,1% isolieren ...
Grüße
bastla
Wie Du der Hilfe zu "start" entnehmen kannst, wird der erste unter Anführungszeichen stehende Begriff als Fenstertitel interpretiert - es sollte also genügen,
start "MeinTitel" "%Pfad%\xyz.exe"
Anmerkung hinsichtlich "cd" und Wechsel des Laufwerks: Zum Einen könntest Du den Schalter /D verwenden, um auch das Laufwerk zu wechseln, zum Anderen gäbe es auch noch "pushd".
Und noch einer: Wenn %Pfad% mit einem Laufwerksbuchstaben begint, kannst Du diesen mit der Schreibweise %Pfad:~0,1% isolieren ...
Grüße
bastla
Hallo Elmi55!
Um tatsächlich ASCII, und nicht ANSI (wie es etwa der Windows-Editor verwendet) zu schreiben, verwende ich in entsprechenden Fällen einfach den "edit"-Befehl der CMD-Shell. Die Menüsteuerung erreichst Du dort übrigens mit der linken "Alt"-Taste und den Cursor-Tasten bzw einer "Alt-"Kombination, etwa "Alt-d" für das Dateimenü.
Grüße
bastla
Um tatsächlich ASCII, und nicht ANSI (wie es etwa der Windows-Editor verwendet) zu schreiben, verwende ich in entsprechenden Fällen einfach den "edit"-Befehl der CMD-Shell. Die Menüsteuerung erreichst Du dort übrigens mit der linken "Alt"-Taste und den Cursor-Tasten bzw einer "Alt-"Kombination, etwa "Alt-d" für das Dateimenü.
Grüße
bastla