48046
Goto Top

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 face-sad


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

Content-Key: 59216

Url: https://administrator.de/contentid/59216

Printed on: April 18, 2024 at 01:04 o'clock

Member: bastla
bastla May 17, 2007 at 09:19:17 (UTC)
Goto Top
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,
start "MeinTitel" "%Pfad%\xyz.exe"  
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
Mitglied: 48046
48046 May 17, 2007 at 10:39:56 (UTC)
Goto Top
Hi Bastla !

Schnell wie immer face-wink

Das mit dem Schalter /D hatte ich zuvor in irgendeiner Hilfe über cd entnommen. Doch da stand auch, dass das nur unter dem Betriebssystem XP gültig hat. Das wäre dann wiederum für mich uninteressant gewesen. Hatte es aber auch ausprobiert ohne einen Erfolg (kann aber auch sein, dass ich was falsch gemacht hab, jedenfalls gings nicht).

Dein Hinweis allerdings mit dem Fenstertitel war genial, hat vollen Erfolg gebracht face-smile
Hab zwar auch die Hilfe von cd im DOS-Fenster aufgerufen, aber dieser Hinweis ist mir nicht ins Auge gefallen. Selbst wenn, hätt ich das wohl anders interpretiert und wäre nicht näher drauf eingegangen. Da kann man mal wieder sehen, 2 Zeichen an der richtigen Stelle und die Sache funktioniert, genial. Man muss nur mit der Nase draufgestoßen werden, danke Bastla face-smile


Tja, ich trau mich ja schon fast garnicht mehr zu fragen. In Zusammenhang mit den Leerzeichen in einem Pfad können ja auch Umlaute öäüÖÄÜ oder auch das ß vorkommen. Dann komme ich natürlich mit meinem Script ins trudeln; sprich es funktioniert nicht. Gibts da noch eine alternative Möglichkeit einen Pfad auf diese Zeichen untersuchen zu lassen und diese Gegebenfalls so zu ersetzen das es funktioniert?

Gruß ELMI
Member: bastla
bastla May 17, 2007 at 13:12:25 (UTC)
Goto Top
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