kuba007
Goto Top

Import der umgebungsvariablen aus einer sub shell zur mutter shell

Tag zusammen,
ich starte den ersten shell via cmd.exe . Von da starte ich einen andern shell wo diverse umgebungsvariablen gesetzt werden(externen toot).
Wenn ich den 2 shell verlasse und zur 1. Shell zuruck komme sind die umgebungsvariablen der 2. Shell nicht mehr vorhanden(logich lokal var.)
meine frage.: wie kann ich die lokalen variablen der 2. Shell in der 1. Shell ubernehmen bzw. Importieren?

os windows7

danke

Content-Key: 172537

Url: https://administrator.de/contentid/172537

Printed on: April 24, 2024 at 04:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Sep 04, 2011 at 11:34:52 (UTC)
Goto Top
Member: kuba007
kuba007 Sep 04, 2011 at 11:52:05 (UTC)
Goto Top
Danke phil fur die schnelle antwort. Ich hatte den tutorial schon gelesen und mit setlocal probiert. Leider war ich nich so erfolgreichface-sad
darum die frage im forum es wäre nett wenn eine konkrette hilfe tipps gibt thx
Mitglied: 99045
99045 Sep 04, 2011 at 11:53:52 (UTC)
Goto Top
Sorry, Kristallkugel ist runtergefallen und kaputt, vielleicht hat ja noch jemand anders eine funktionierende.
Member: kuba007
kuba007 Sep 04, 2011 at 12:02:29 (UTC)
Goto Top
Also geht das net oder wie soll ich das jetzt verstehen. Master
Mitglied: 60730
60730 Sep 04, 2011 at 12:21:20 (UTC)
Goto Top
Zitat von @kuba007:
Also geht das net oder wie soll ich das jetzt verstehen. Master

Nunja - nicht böse sein, aber ich verstehe das auch nicht - du willst Variablen in Session 1 definieren, in Session 2 benutzen, da ist doch genau setlocal der Griff ins Runde Kachelbecken...

Du darst gerne davon ausgehen, das hier wirklich gute Admins antworten, und wenn du auf deren Knoff hoffst, dann schreib uns doch mal, was genau der Grund ist, warum du das allles so "komplex" gestrickt hast und nur dann, wenn das einen Grund hat, den wir verstehen können - würden wir einen Sinn darin sehen, mit Kanonen zu schiessen, oder die evtl. ein gutes Luftgewehr für deine Spatzenjagd anbieten.

Gruß
Member: jens2001
jens2001 Sep 04, 2011 at 12:27:00 (UTC)
Goto Top
...hatte den tutorial schon gelesen...

Anscheinend nicht richtig.

...Wenn die Variablen aus einer Subroutine trotz SETLOCAL an die Übergeordnete Routine übergeben werden sollen müssen die zu Übergebenden Variablen in der >gleichen Befehlszeile und hinter ENDLOCAL (nocheinmal in sich selbst) Erstellt werden. Am besten mit Gänsefüsschen - wenn man nicht weiss, ob >Befehlsverkettungszeichen enthalten sind.

ENDLOCAL & set "VariableZumUebergeben=%VariableZumUebergeben%"
Member: kuba007
kuba007 Sep 04, 2011 at 12:35:59 (UTC)
Goto Top
Also ich versuche jetzt genauer zu bechreiben:
windriver bietet einen eignen shell (wr-env.exe) fur die benutzung der diversen tools (make, compiler, assembler) uber den cmds window. Da werden die diverse umgebungsvariablen gesetz fur den entsprechenden prozessoren usw..
Ich habe aber eignen shell wo ich auch diverse andere umgebungsvariablen setze und von da will ich die spezifische windriver umgebungsvariablen setzen, dies wollte ich anhand des aufrufs wr-env.exe setzen. Es geht zwar alles zu fuss mit set und dann kopieren aber ist net so schönface-sad
Member: kuba007
kuba007 Sep 04, 2011 at 12:43:30 (UTC)
Goto Top
Hier ist einen auszug aus der windriver guide wie es funktionieren soll. Leider kann ich den befehl eval nicht ausfuhren.

4.2.1 Setting the Environment in a Sub-shell
The most common usage of wrenv is to set up the environment before using the
product. The preferred syntax is as follows:
% wrenv.sh –p package-name
This will spawn a sub-shell with the environment for the selected package-name. See
run, p.17 for information about which type of sub-shell spawned.
NOTE: Most command-line Linux developers prefer to have absolute control over
their environment settings. This usage allows such developers to insure that the
added settings are in a new shell and will not affect the current shell.
Wind River wrenv
User's Guide Supplement, 3.3
22
4.2.2 Setting the Environment Using a Current Shell
There are cases when starting sub-shell is undesirable, for example:
1. You do not want to start a sub-shell because of scripting.
2. You have .cshrc or .profile files that override PATH or other variables
whenever a sub-shell is started.
Exporting wrenv Environment Settings to the Current Shell
The following command line can be used to output the environment variables to
standard out:
% ./wrenv.sh –p package-name –p print_env –f shell-type
See run, p.17 for possible values of shell-type. A more concrete example of setting
the environment in csh without starting a sub-shell is the following:
% eval `wrenv.sh –p package-name –o print_env –f csh`
Extracting wrenv Environment Settings
The following command line can be used to output the environment variables to
standard out:
% ./wrenv.sh –p package-name –p print_env | grep ‘^path-label=’
For example, suppose you had a script that needed to find all packages that added
a path for WIND_WRLINUX_LAYERS. These paths would be entered in the form:
ipnet60.eval.01=addpath WIND_WRLINUX_LAYERS $(WIND_HOME)$/ipnet-6.0
To extract these paths, you would execute the command:
% ./wrenv.sh –p package-name –p print_env | grep ‘^WIND_WRLINUX_LAYERS=’
Member: pieh-ejdsch
pieh-ejdsch Sep 04, 2011 at 19:50:01 (UTC)
Goto Top
ohne eine Ausgabe des Programms hier zu Posten eventuell mit einem Link dahin wäre eine weitere hilfe möglich.

Besser als den Guide hier zu Posten ist eine Ausgabe der Hilfe /?

wie ist das Ergebnis wenn Du im ersten Batch die Variablen erstellen lässt und daraus die auszufürende Aktion startest?
mit verwirrten Grüßen

Phil