Reputation: 1553
I need some help in writing a batch file. I have a path stored in a variable root as follows:
set root=D:\Work\Root
Then I am changing my working directory to this root as follows:
cd %root%
When I execute this batch file from anywhere on the D drive this is done successfully. But when I execute the same batch file from some other drive, cd %root% doesn't work.
Is there a way I can get the drive letter from the root variable? I can then change the current directory to this drive first and then cd %root% shall work.
Upvotes: 136
Views: 419179
Reputation: 9077
In my batch file I needed to :
pushd
solved this with the help of popd
bat file example
pushd <my-working-directory>
do command
do other command
...
popd
popd
moved me back to original directory.
Upvotes: 7
Reputation: 86698
Just use cd /d %root%
to switch driver letters and change directories.
Alternatively, use pushd %root%
to switch drive letters when changing directories as well as storing the previous directory on a stack so you can use popd
to switch back.
Note that pushd
will also allow you to change directories to a network share. It will actually map a network drive for you, then unmap it when you execute the popd
for that directory.
Upvotes: 47