Clearly, the ability to use SET ... to place "Returned" values in the Environment for use by the caller is a great advantage in favor of using CALL instead of COMMAND /C to invoke batch files as subroutines, as we can (now) pass back status information and the like! If a BATCH file can place its results in the ENVIRONMENT when that is desired, why not use a PROGRAM (invoked via CALL) to do the same thing? Well, it works, and gives us a way to solve the other perennial batch file problem, how to get true "variables" into the current batch file, rather than just ERRORLEVEL holding a single keystroke! But, let's save that for DEMONSTRATION SEQUENCE 3, and not do it here.