If you use %var%, it is expanded at use. If you want to set a variable to include %var%, you need to write %%var%%.
Note also the registry settings are not seen by the current process, but are seen only by new processes. In winpe, these settings in registry are never passed to new processes, but the cmd environment gets the explorer environment, not the registry. For this reason people have written utilities rthat fiddle different environments.
If you want to read registry to the current cmd session, you may need something like Frank Westlake's conset.exe.