anchor.diff:      set "NEEDSETUP=1"
     :# )
     if %MODE%==setup (
  -    %ECHO% :# Updating global environment variable PATHEXT to: %PE%;.%EXT%
  -    %EXEC% reg add "%KEY%" /v PATHEXT /d "%PE%;.%EXT%" /f
  -    %ECHO% :# Notifying all windows of the environment block change
  -    :# The ^) below is necessary to prevent the ) from closing the if block ... v
  -    %ECHO.XVD% C# SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment"^);
  -    :# Run a second instance of this script in PowerShell, to do the broadcast
  -    %IF_EXEC% PowerShell -c "Invoke-Expression $([System.IO.File]::ReadAllText('%SFULL%'))"
  +    set "PE=%PE%;.%EXT%"
  +    %ECHO% :# Updating global environment variable PATHEXT to: !PE!
  +    call :SysVar.Set PATHEXT PE
  +    rem set "NEED_BROADCAST=1" &:# Already done by the routine
     )
   ) else (
     set "MSG="
  
positive.code: if not "%HOMEDRIVE%"=="C:" set "SEARCHDRIVES=%HOMEDRIVE:~0,1% %SEARCHDRIVES%"
  set "ACTION="
  set ">DEBUGOUT=>&2"	&:# Send debug output to stderr, so that it does not interfere with subroutines output capture
  goto getarg
  
  :# Process the command line options
  
negative.code: :#                  Debug.Return    Log exit from a routine		      #
  :#                  Verbose.Off	    Disable the verbose mode                  #
  :#                  Verbose.On	    Enable the verbose mode		      #
  :#                                                                            #
  :#                  Echo	    Echo and log strings, indented            #
  :#                  EchoVars	    Display a set of variables name=value     #
  :#                  EchoStringVars  Display a string, then a set of variables #
  :#                  EchoArgs	    Display all arguments name=value          #
  :#                  EchoVals	    Display the value of multiple variables   #
  :#		    All functions in that series have two other derivatives,  #
  :#                  with the .debug and .verbose suffix. Ex: Echo.Debug       #
  :#                  These display only in debug and verbose mode respectively,#
  :#                  but always log the string (if a log file is defined).     #
  :#                                                                            #
  :#  Macros          %FUNCTION%	    Define and trace the entry in a function. #
  :#                  %UPVAR%         Declare a var. to pass back to the caller.#
  