Guten Morgen, ich habe ein Script (script.cmd), das für mich Modultests startet. Wenn es aus der IDE heraus gestartet wird, wird das Ergebnis in der Konsolenausgabe der IDE angezeigt. Das soll so bleiben. Wenn ich die *.cmd-Datei im Explorer starte, soll das Konsolenfenster geöffnet bleiben, damit man das Ergebnis lesen kann. Normalerweise erreiche ich das mit dem Befehlt "pause" am Skriptende. Das Problem: Füge ich am Ende des Skripts die "pause" ein, funktioniert das Beenden des Skripts in der IDE nicht mehr, da es eine reine Ausgabe ist. Also muss sich das Skript irgendwie unterschiedlich verhalten, je nachdem, ob es über den Explorer oder per cmd.exe gestartet wird. Ich habe es schon versucht, über die Auswertung von %cmdcmdline% herauszubekommen, aber das war eine Sackgasse. Meine komplette Umgebung davon zu überzeugen, auf Linux zu wechseln, wird auch nicht klappen. Wie kann ich dafür sorgen, dass sich ein Skript beendet, wenn es in einer Konsole ausgeführt wird und nicht beendet, wenn es über den Explorer gestartet wird?
Das ist, wenn die IDE mitspielt ganz einfach. Suche nach Environmentvariablen die von der IDE gesetzt werden. Die kannst du dann passend auswerten.
starte es im Explorer nicht direkt sondern über einen Batchjob. start.bat *************** call script.cmd pause ***************
Lege einen Link auf das Skript an und gib im Link einen beliebigen Wert für einen Parameter an, z. B. wait. Verwende diesen Parameter im Skript zum pausieren:
1 | if not %1.==. pause |
Gruß WIRO
Kopiere das Skript und setze an der Kopie deine Pause rein und nutze dies.
Gugscht schrieb: > starte es im Explorer nicht direkt sondern über einen Batchjob. Das ist mein aktueller Workaround WIRO schrieb: > Lege einen Link auf das Skript an Das war mein erster Gedanke, aber Links scheinen grundsätzlich absolute Pfade zu haben. Das kann ich hier nicht gebrauchen. WIRO schrieb: > gib im Link einen beliebigen Wert > für einen Parameter an, z. B. wait. Das könnte klappen. Ich kann in der IDE beim Aufruf einen Parameter mitgeben, z.B. doNotWait. Nachtrag: Ja, das funktioniert. Danke für den Tipp!
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.