$ set comspec
ComSpec=C:\WINDOWS\system32\cmd.exe
$ echo %comspec%
C:\WINDOWS\system32\cmd.exe
$ echo %COMSPEC%
C:\WINDOWS\system32\cmd.exe
$ perl -le "print 'comspec : ', $ENV{comspec}"
comspec : C:\WINDOWS\system32\cmd.exe
$ perl -le "print 'COMSPEC : ', $ENV{COMSPEC}"
COMSPEC : C:\WINDOWS\system32\cmd.exe
####
$ set | grep -i ^shell
shell /bin/tcsh
$ echo $shell
/bin/tcsh
$ echo $SHELL
$ perl -le 'print "shell : ", $ENV{shell}'
shell :
$ perl -le 'print "SHELL : ", $ENV{SHELL}'
SHELL : /bin/bash
####
$ set var
var=%OS%
$ perl -MWin32 -e "print $ENV{var} .= ' evaled' , ' => ', Win32::ExpandEnvironmentStrings($ENV{var})"
%OS% evaled => Windows_NT evaled
####
$ set var=Foo
$ set var
var=Foo
$ set var=Bar & perl -MWin32 -e "print Win32::ExpandEnvironmentStrings('%var%')"
Foo
$ set var
var=Bar
$ set var=Baz & perl -MWin32 -e "print Win32::ExpandEnvironmentStrings('!var!')"
Baz
$ set var
var=Baz