I answered an interesting SO question on that recently, which asked how to save and restore the environment in PowerShell. Turns out, the environment being in a PSDrive helps very much with that because you can treat the variables just like you treat files:
You can use 'setx' to permanently set envars too.
You don't need to logout to use them, just restart cmd or whatever program you use.