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.
5 Answers 5
Specify /D to change the drive also.
CD /D %root%
3 Comments
\d (lowercase) is there a difference between either? Is the option just case-insensitive?/D above are case-insensitive (/D = /d), just like the commands themselves (CD = cd). I believe that is also true for all external Windows command-line utilities (like FINDSTR, SORT etc.) Third-party tools, on the other hand, can use case-sensitive parameters.set "root=/d D:\Work\Root" and cd %root% or even set "root=cd /d D:\Work\Root" and just %root%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.
Comments
Try this
chdir /d D:\Work\Root
2 Comments
C:\"Program Files"\Something\SomethingA simpler syntax might be
pushd %root%
Comments
In my batch file I needed to :
- Change dir to other directory
- run commands in bat file -- do some work in that directory
- change back to my original directory
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.
1 Comment
pushd ..Explore related questions
See similar questions with these tags.