Who defines %cd% for my batch?
The following batch script prints out my current working directory.
echo %cd%
But I didn't define the cd variable. So who does this? Is there anything else like this?
I also checked the Environment Variables, there's none with the name of cd. So is this built into the cmd.exe?
Th开发者_如何学Pythonanks.
see HELP SET
...
If Command Extensions are enabled, then there are several dynamic environment variables that can be expanded but which don't show up in the list of variables displayed by SET. These variable values are computed dynamically each time the value of the variable is expanded. If the user explicitly defines a variable with one of these names, then that definition will override the dynamic one described below:
%CD% - expands to the current directory string.
%DATE% - expands to current date using same format as DATE command.
%TIME% - expands to current time using same format as TIME command.
%RANDOM% - expands to a random decimal number between 0 and 32767.
%ERRORLEVEL% - expands to the current ERRORLEVEL value
%CMDEXTVERSION% - expands to the current Command Processor Extensions version number.
%CMDCMDLINE% - expands to the original command line that invoked the Command Processor.
Run SET /?
and in the end you'll find the answer and some other vars like that as well.
The value is stored by the command shell, I believe.
It's a built-in behavior of the batch processor, and has the same basic behavior as ERRORLEVEL
.
精彩评论