Ich wollte eine Windows-Batch-Datei auf einem Laufwerk ausführen (Doppelklick oder Enter), sie startete kurz und beendete sich sofort, keine Zeit, die Fehlermeldung durchzulesen. Wenn ich die Kommandozeile im Laufwerk öffnete, ließ sich die Datei problemlos starten und korrekt ausführen.
Heute endlich Zeit gehabt, mir das genauer anzusehen, debugging mit echo
und pause
.
Das Problem war, dass das Laufwerk, das ich benutzte, ein Netzlaufwerk \\server...\
war.
Das war auf dem Rechner als Laufwerk Y:
verbunden.
Wenn ich jetzt die Batch aus dem Windows-Explorer öffne, per Doppelklick oder Maus, versucht Windows, cmd.exe
mit dem Netzwerklaufwerk \\server...\
als Parameter zu starten.
Dort gibt cmd.exe
eine Fehlermeldung aus, dass UNC-Pfade nicht unterstützt werden und mit dem Standardverzeichnis, in dem cmd.exe
liegt, fortgefahren wird.
Dort kann aber die Batch-Datei nicht weiterarbeiten, und bricht sofort mit einer Fehlermeldung ab.
Wenn ich im Laufwerk mit Shift und rechter Maustaste die Option “Eingabeaufforderung hier öffnen” wähle, wird als Parameter das gemountete Laufwerk, also Y:\...
übergeben.
Das kann cmd.exe
und damit konnte die Batch korrekt arbeiten, ich musste sie nur von Hand aufrufen.
Etwas schwierig zu finden, weil ich keine Ahnung hatte, wonach ich suchte.
Seltsames Verhalten von Computern, manchmal.