NppExec supports all basic (predefined) environment variables of Notepad++ plus several its own (predefined) environment variables. See NppExec's help [3.1] for more details about supported predefined variables.
Consider such predefined environment variables as "read-only": you can use these variables in NppExec's commands and scripts, but can not modify their values.
These variables exist in NppExec's commands and scripts - actually, these variables are replaced with their current values by NppExec when you use them. These variables do not exist outside of NppExec (do not exist for child processes and so on). It means you can't use such variables as $(FULL_CURRENT_PATH), $(NPP_DIRECTORY), $(#1) and so on inside external programs or tools. However, you can:
1) pass the values of these variables as input parameters of external programs/tools, e.g.
// pass "$(FULL_CURRENT_PATH)" as a parameter of tcc tcc -run "$(FULL_CURRENT_PATH)"
2) use the command "env_set" to create a heritable environment variable [3.8.3] which will be accessed inside external programs/tools, e.g.
// create new environment variable NPPHOME ENV_SET NPPHOME = $(NPP_DIRECTORY) // start cmd.exe cmd
Now you can type something similar to "echo %NPPHOME%" inside cmd in order to use the value of this environment variable.