Forum: PC-Programmierung Skript Pause wenn in nicht in Konsole ausgeführt


von Walter T. (nicolas)


Lesenswert?

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?

von ... (Gast)


Lesenswert?

Das ist, wenn die IDE mitspielt ganz einfach.
Suche nach Environmentvariablen die von der IDE gesetzt werden.
Die kannst du dann passend auswerten.

von Gugscht (Gast)


Lesenswert?

starte es im Explorer nicht direkt sondern über einen Batchjob.

start.bat
***************
call script.cmd
pause
***************

von WIRO (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

Kopiere das Skript und setze an der Kopie deine Pause rein und nutze 
dies.

von Walter T. (nicolas)


Lesenswert?

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
Noch kein Account? Hier anmelden.