Umgebungsvarialble in CMD-Datei setzen

18/05/2016 - 18:53 von ram | Report spam
Ich habe ein Skript »S.cmd«, das eine Umgebungsvariable setzt:

S.cmd
SET A=B
EXIT /B 0

In einem anderen Skript kann ich dann die Umgebungsvariable
»A« sehen:

T.cmd
CALL S.cmd
ECHO %A%
PAUSE

Jedenfalls war das so mit zwei Skripten möglich, die ich öfter
verwende. Jetzt wollte ich diese Technik mit zwei anderen Skripten
anwenden, und da geht es nicht. Auf einmal ist »%A%« in »T.cmd«
leer, obwohl dasselbe »ECHO %A%« in »S.cmd« vor dem »EXIT« »B«
anzeigt.

Was könnte ich eventuell noch Überprüfen? Da ich das Echo-Kommando
aus »S.cmd« kopiert haben, scheidet ein Tippfehler in »T.cmd« aus.

Wenn ich die beiden obigen Dateien, so wie in diesem Post anlege,
dann gibt »T.cmd« wie gewünscht »B« aus. Aber in zwei anderen
Kommandodateien, wo dasselbe mit zusàtzlichen Kommandos vorkommt,
geht es nicht mehr. In diesen realen Dateien endet die erste mit
(Namen für das Posting veràndert):

...
ECHO %ENVIRONMENTVARIABLENAME%
ECHO LEAVING A.cmd
@EXIT /B 0

und die zweite enthàlt:

CALL ./A.CMD
ECHO RETURNED BACK IN B.cmd
ECHO %ENVIRONMENTVARIABLENAME%

Die Ausgabe ist dann


ECHO VARIABLECONTENTS


VARIABLECONTENTS


ECHO LEAVING A.cmd


LEAVING A.cmd


ECHO RETURNED BACK IN B.cmd


RETURNED BACK IN B.cmd


ECHO


ECHO is on.

Die letzten beiden Zeilen sollten aber lauten:


ECHO VARIABLECONTENTS


VARIABLECONTENTS
 

Lesen sie die antworten

#1 Ruediger Lahl
18/05/2016 - 19:24 | Warnen spam
*Stefan Ram* schrieb:

Jedenfalls war das so mit zwei Skripten möglich, die ich öfter
verwende. Jetzt wollte ich diese Technik mit zwei anderen Skripten
anwenden, und da geht es nicht. Auf einmal ist »%A%« in »T.cmd«
leer, obwohl dasselbe »ECHO %A%« in »S.cmd« vor dem »EXIT« »B«
anzeigt.



Ein SETLOCAL ist da nicht zufàllig irgendwo verbaut?
bis denne

Ähnliche fragen