Hallo,
ich hätte gerne gewusst wo eine Environment-Variable gespeichert wird die ich in einem CMD-Script gesetzt habe. Die Standardvariablen wie Path sind in der Registry vorhanden. Meine privat gesetzten aber nicht.
Hallo,
ich hätte gerne gewusst wo eine Environment-Variable
gespeichert wird die ich in einem CMD-Script gesetzt habe. Die
Standardvariablen wie Path sind in der Registry vorhanden.
Meine privat gesetzten aber nicht.
Unter welchem Betriebssystem?
Vermutlich (z.B. XP) werden sie nur lokal im jeweiligen „Fenster“ (also einer DOS-Box) gespeichert. Sobald du das Fenster schließt, sind sie weg.
Öffne ein Eingabefenster, rufe deine CMD auf und anschließend set. dann solltest du deine Variablen sehen.
Cu Rene
Unter welchem Betriebssystem?
Ja unter XP.
Ich setze eine Varibable in der CMD-Shell (SET XXX=0). Anschliessend rufe ich ein AutoIT-Script auf das mir eine Art Fortschrittsanzeige darstellt. Dieses Script soll die Fortschrittsinformation aus der Variable XXX beziehen die in der CMD-Shell laufend verändert wird. Die Environment-Variablen werden dem AutoIT-Script aber nur beim Aufruf einmal übergeben. Nachträgliche Veränderungen bekommt das Script nicht mit. Daher meine Frage wo die Variablen abgespeichert werden. Möglicherweise kann ich sie ja von dem AutoIT-Script aus abrufen.
denkfehler!
hallo
das ist absicht so: die umgebungsvariablen gelten grundsätzlich mal für alle NEU gestartet programme gleich. ein programm kann diese variablen für sich selber verändern. wenn dieses programm aber ein anderes startet, wird für dieses programm die aktuelle umgebung KOPIERT - diese programme arbeiten mit einer kopie weiter und haben damit keinen zugriff mehr auf die umgebung vom startenden programm.
die umgebungsvariablen sind damit nicht in der registry drinnen sondern im prozessspeicher eines jeden laufenden prozesses. nur wenn der prozess die variable permanent speichert, werden die werte in die registry geschrieben.
insofern ist eine datenübergabe zwischen zwei programmen über die umgebungsvariable schlicht und ergreifend sinnloss, da beide programme mit getrennten umgebungen arbeiten.
besser ist da sicher die datenübergabe explizit über die registry - oder gleich über richtige interprozesskommunikation - was aber den rahmen dieses threads etwas sprengt…
lg
erwin
Danke für die Erklärung. Ich werde dann mal versuchen den Wert über die Registry auszutauschen.