home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.comp.os.windows-xp      Actually wasn't too bad for a M$-OS      17,273 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 17,179 of 17,273   
   Maria Sophia to Frank Slootweg   
   Re: Whats the %=C:% environment variable   
   06 Feb 26 11:35:52   
   
   XPost: alt.windows7.general, alt.comp.os.windows-10   
   From: mariasophia@comprehension.com   
      
   Frank Slootweg wrote:   
   > R.Wieser  wrote:   
   >> Hello all,   
   >>   
   >> A couple of days ago I was looking at the envronment variables, and noticed   
   >> a variable named "=C:", containing the current path of that drive.   
   >   
   >   Current working directory, to be precise.   
   >   
   >> Can anyone tell me what it was/is used for ?   
   >   
   >   Google, which you apparently don't want to use, says (amongst others):   
   >   
   > "The %=C:% environment variable in Windows is a hidden, special   
   >  system-wide variable that stores the current working directory for the   
   >  C: drive.   
   >   
   >  It is part of a legacy mechanism (dating back to MS-DOS) that allows   
   >  the command processor (cmd.exe) to track separate current directories   
   >  for every drive letter, rather than having one single global current   
   >  directory for the whole system.   
   >   
   >  Here are the key details about %=C:%:   
   >   
   >  * Function: It keeps track of where you are in the C: drive if you are   
   >    currently working on a different drive (e.g., if you are in D:\Data   
   >    but type cd C:\Users, %=C:% will be updated to C:\Users).   
   >   
   >  * Automatic Management: This variable is managed automatically by   
   >    cmd.exe when you use the cd (chdir) command."   
   >   
   >> Remarks: Using the command-prompt it doesn't appear in the "set" list, and   
   >> it can be read, but not written.   
   >   
   >   Google confirm that behaviour.   
   >   
   >   It also gives a comparison with other variables. such ad %CD%   
   > %SystemDrive% and mentions the somwhat obvious:   
   >   
   > "If you change drives, other variables like %=D:%, %=E:%, etc., are   
   >  created for those respective drives.".   
      
   Windows contains secrets normally kept hidden under the floorboards.   
      
   Following on what Frank said, it turns out Windows creates "drive-specific   
   current directory" environment variables which look funnily like this.   
        =C:   
        =D:   
        =Z:   
   Each one stores the current working directory (cwd) for that drive.   
      
   Try this:   
        C:\> cd \Windows   
        C:\Windows> D:   
        D:\> cd \Games   
        D:\Games> C:   
        C:\Windows>   
   Notice how switching back to C: returns you to C:\Windows automatically?   
   That's because Windows stored it in that =X: stuff.   
      
   They're maintained internally by the OS, not by the shell so you can't read   
   them (echo %=C:%) or see them with set or even write to them.   
      
   Try these proof-of-concept examples:   
        C:\> cd \Windows   
        C:\Windows> echo %=C:%   
        C:\Windows   
      
   Switch drives:   
        C:\Windows> D:   
        D:\> echo %=C:%   
        C:\Windows   
   It stays the same until you change directories on C:.   
      
   It's mysterious. Much like the %CD% vs. %__CD__% split   
    %__CD__% === an internal variable used by cmd.exe to track the raw current   
   directory path including UNC paths (\\server\share), extended path lengths   
   (\\?\C:\very\long\path), temp dirs, exact casing, setc. It's the true   
   working directory as the command interpreter sees it.   
      
   You might not notice the difference unless you're in a UNC or long path:   
       C:\> echo %__CD__%   
   Just like the =C: variables, it's protected.   
      
   Don't even get me started on the bizarre CONIN$/CONOUT$ handles!   
   --   
   Windows contains secrets normally kept hidden under the floorboards.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca