Holy cow, I wrote a book!
When you set environment variables with the
System control panel,
the TEMP and TMP variables are silently
converted to their short file name equivalents
Why is that?
For compatibility, of course.
It is very common for
the paths referred to by the %TEMP% and %TMP%
do not contain any embedded spaces.
(Other programs may also make this assumption, but batch files
are the most common place where you run into this problem.)
I say "if possible" because
you can disable short name generation,
in which case there is no short name equivalent,
and the path remains in its original long form.
If you are crazy enough to set this value and point your
variables at a directory whose name contains spaces and doesn't
have a short name, then you get to see what sorts of things stop
working properly. Don't say I didn't warn you.