Moin Matti,
mit genau diesem Problem bin ich zu Foren gekommen
Laut MS ist es nicht möglich.
Als Workaround wurde empfohlen eine Batchdatei mit entsprechender Set-Zeile zu erzeugen.
Diese sollte dann mit CALL in der urprünglichen Batchdatei nach dem eigenen Programm aufgerufen werden, um für die Konsole die Variable zu setzen.
(Also so, wie es hier auch schon beschrieben wurde).
Da ich das "geht nicht" nicht so ganz akzeptieren wollte, habe ich mir mal eine Möglichkeit überlegt.
Hier habe ich mal einen Beispielsourcecode geposted.
Zumindest bis XP funktioniert das Ganze sogar ohne Admin-Rechte.
Der Haken: Unter Vista habe ich es noch nicht zum Laufen bekommen
Zitat von
himitsu:
gab's schonmal ein/zwei Themen dazu, wo s darum geht die Umgebungsvariablen von anderen (laufenden) Prozessen zu ändern.
Fazit: es ist praktisch unmöglich
Grund: den Environmentblock kann man zwar ändern, aber viele Programme lesen diesen Block nur beim Programmstart aus und arbeiten dann nur noch mit privaten lokalen Kopieen, an welche du praktisch nicht rankommst.
I.d.R. bekommt ein Prozess zu Beginn eine Kopie das Environment-Blocks das aufrufenden Prozesses, und liest die Umgebungsvariablen aus diesem aus, bzw. ändert sie auch dort.
Wenn man natürlich die Umgebungsvariablen nur einmalig ausliest, und dann intern speichert geht das nicht.
Bei Mattis Problem spielt das aber keine Rolle, da die Konsole das ja nicht macht.