Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch beenden

Frage Entwicklung Batch & Shell

Mitglied: 48046

48046 (Level 1)

17.05.2007, aktualisiert 15:12 Uhr, 4809 Aufrufe, 3 Kommentare

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
Mitglied: bastla
17.05.2007 um 11:19 Uhr
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,
01.
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
Bitte warten ..
Mitglied: 48046
17.05.2007 um 12:39 Uhr
Hi Bastla !

Schnell wie immer

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


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
Bitte warten ..
Mitglied: bastla
17.05.2007 um 15:12 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Windows Update Dienst per Batch beenden (12)

Frage von Justin98 zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...