-
The script's current working directory
-
The path, including drive, where the script resides
-
The user's home directory
-
The system's temp directory
EXPLANATION
In the help for the FOR command, the %~ format for variable
expansion is discussed. This can be used outside of the FOR command as
well. The following options are relevant:
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
The modifiers can be combined to get compound results, so
%~dp0 - expands %I to a drive letter and path only
Finally,
%0 is the built-in variable reference to the path to the batch file
that includes the file name (i.e. the 0th argument to the cmd.exe
program).
The script's current working directory is returned using
cd with
no arguments. It isn't necessarily the same as the script's parent
directory, especially if the script is run from a non-system drive or
UNC path. In the latter case, the working directory can end up being
set to the
Windows directory.
The user's home directory is referenced by the
"%HOMEDRIVE%\%HOMEPATH%" or
%USERPROFILE% envars.
The system temp directory is referenced by the
%TEMP% envar.
SOURCE
http://stackoverflow.com/questions/5034076/what-does-dp0-mean-and-how-does-it-work