Batch Programmierung: DOS Box schließen

Hallo!

Wie kann ich erreichen, daß sich nach Ausführung meines Batch Programms die DOS Box wieder schließt? Oder noch besser wäre eigentlich, wenn das Batch Programm im Hintergrund laufen und sich überhaupt keine DOS Box öffnen würde. Man kann doch eine DOS Box mit dem Kommando „exit“ schließen, warum funktioniert das über eine Batch Datei nicht, wenn ich zuvor mit „call“ eine andere Datei öffne? Ich verwende Windows 2000.

Grüße, Tanja

Hi Tanja,

lang nichts mehr von Dir gelesen!

Wie kann ich erreichen, daß sich nach Ausführung meines Batch
Programms die DOS Box wieder schließt?

Gar nicht. Die .bat wird aus der DOS-Box gestartet, deshalb darf es keine Möglichkeit geben, dass sie sich selbst die Laufzeitumgebung entzieht.

Oder noch besser wäre
eigentlich, wenn das Batch Programm im Hintergrund laufen und
sich überhaupt keine DOS Box öffnen würde.

Unter Windows gibt es den „Windows Scripting Host“, mit dem die Ausführung im Hintergrund gesteuert wird.

Man kann doch eine
DOS Box mit dem Kommando „exit“ schließen, warum funktioniert
das über eine Batch Datei nicht, wenn ich zuvor mit „call“
eine andere Datei öffne?

Steht „Exit“ in der .bat? Dann wird damit nur die .bat geschlossen, nicht aber die DOS-Box.

Gruß Ralf

Hallo Tanja

Wie kann ich erreichen, daß sich nach Ausführung meines Batch
Programms die DOS Box wieder schließt? Oder noch besser wäre
eigentlich, wenn das Batch Programm im Hintergrund laufen und
sich überhaupt keine DOS Box öffnen würde. Man kann doch eine
DOS Box mit dem Kommando „exit“ schließen, warum funktioniert
das über eine Batch Datei nicht, wenn ich zuvor mit „call“
eine andere Datei öffne? Ich verwende Windows 2000.

Es gibt einen Trick, wenn du das ganze aus Windows startest:
Du kannst den Befehlsinterpreter (command.com) von Windows aus starten und ihm deinen Batch als Parameter übergeben.

gib mal in der DOS-Box „command /?“ ein, dann bekommst du die gültigen Parameter.
MfG Peter(TOO)

Hallo!

Oder noch besser wäre
eigentlich, wenn das Batch Programm im Hintergrund laufen und
sich überhaupt keine DOS Box öffnen würde. Man kann doch eine
DOS Box mit dem Kommando „exit“ schließen, warum funktioniert
das über eine Batch Datei nicht, wenn ich zuvor mit „call“
eine andere Datei öffne? Ich verwende Windows 2000.

Das Problem kenne ich von Win9x/ME - nicht aber von Win2k/XP.

Probiere mal die Endung .cmd (statt .bat)

Wie man das ‚schwarze Fenster‘ ganz weg bekommt, ist auf http://dieseyer.de/dse-wsh-scr-b.html erklärt (aber nicht ganz so einfach, wie man möchte).

Bis dann - dieseyer

Hallo Tanja,

Wie kann ich erreichen, daß sich nach Ausführung meines Batch
Programms die DOS Box wieder schließt?

Die einfachste Methode ist IMHO so:

Im Explorer die Batch-Datei markieren und mit Alt+Return die Eigenschaften bestimmen. Es öffnet sich ein Dialog-Fenster. Unter dem Tab „Programm“ findest Du unten die Möglichkeit, wie es ausgeführt werden soll (Fenster/Maximiert…Minimiert) und „[_] beim Beenden schliessen“. – Allerdings legt Windows dafür ein .PIF-Datei an, die die Eigenschaften enthält, sei’s jetzt in dem Ordner mit der .BAT-Datei oder in einem Win/System-Ordner, das ist ggf. abhängig von der Win-Version.

HTH. CU DannyFox

Hallo!

Danke für alle Tips, leider hilft mir das nicht so richtig weiter. Mein eigentliches Problem ist, daß es unter Windows keine relativen Links (z.B. „…/test.txt“ anstatt „D:\test\test.txt“) gibt wie unter allen anderen vernünftigen Betriebssystemen! :frowning: Windows Verknüpfungen sind nur auf absolute Pfade möglich und Laufwerksbuchstaben sowie UNC-Namen kann ich auch nicht verwenden, da sich die Verknüpfungen auf einer CD befinden sollen.

Deshalb habe ich testweise mal ein Batch File geschrieben, das über relative Pfade in das jeweilige Verzeichnis wechselt und die entsprechende Datei öffnet. Das hat in diesem Fall jedoch folgende Nachteile:

  • Drag & Drop nicht möglich, das würde auch nicht mit Windows Scripting Host funktionieren, oder?
  • DOS Box schließt nicht (weder als *.bat noch als *.cmd), sobald ich darin ein weiteres Programm aufrufe. Die Eigenschaften der DOS Box kann ich nicht verändern, da sich das Batch File auf einer CD befinden soll.

Hat jemand eine Idee wie ich unter Windows relative Links realisieren kann? Also so etwas wie Link Files unter UNIX, Drag & Drop sollte auch funktionieren.

Grüße, Tanja

Hallo!

Ich habe jetzt eine Lösung, wie man auch unter Windows symbolische Links erzeugen kann, Drag & Drop funktioniert auch! :smile:

Cygwin: cygwin1.dll acts as a Linux emulation layer providing substantial Linux API functionality.
-> http://cygwin.com

Duplicate Files Linker: GNU program to find double copies of files and replace it to symbolic links.
-> http://bootcd.narod.ru/index_e.htm

Grüße, Tanja

1 Like