What does it mean by command cd /d %~dp0 in Windows [duplicate]
Solution 1:
Let's dissect it. There are three parts:
-
cd
-- This is change directory command. -
/d
-- This switch makescd
change both drive and directory at once. Without it you would have to docd %~d0 & cd %~p0
. (%~d0
Changs active drive,cd %~p0
change the directory). -
%~dp0
-- This can be dissected further into three parts:-
%0
-- This represents zeroth parameter of your batch script. It expands into the name of the batch file itself. -
%~0
-- The~
there strips double quotes ("
) around the expanded argument. -
%dp0
-- Thed
andp
there are modifiers of the expansion. Thed
forces addition of a drive letter and thep
adds full path.
-
Solution 2:
~dp0
: d=drive, p=path, %0=full path\name of this batch-file.
cd /d %~dp0
will change the path to the same, where the batch file resides.
See for /?
or call /?
for more details about the %~...
modifiers.
See cd /?
about the /d
switch.