Holy cow, I wrote a book!
Sometimes people go to great lengths to get information which is available in a much simpler way. We saw it a few days ago when we found a 200+-line C# program that could be replaced with a 90-byte batch file. Here's another example of a rather roundabout way of capturing the current directory from a batch file.
The easy way is to use the %CD% pseudo-variable. It expands to the current working directory.
%CD%
set OLDDIR=%CD% .. do stuff .. chdir /d %OLDDIR% &rem restore current directory
(Of course, directory save/restore could more easily have been done with pushd/popd, but that's not the point here.)
The %CD% trick is handy even from the command line. For example, I often find myself in a directory where there's a file that I want to operate on but... oh, I need to chdir to some other directory in order to perform that operation.
set _=%CD%\curfile.txt cd ... some other directory ... somecommand args %_% args
(I like to use %_% as my scratch environment variable.)
%_%
Type SET /? to see the other pseudo-variables provided by the command processor.
SET /?