In a Windows command script (cmd.exe), what does the string %~dp0 stand for?
- 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.
0 comments:
Post a Comment