anchor.diff:  if "%ARG:~0,1%"=="-" (>&2 echo Error: Invalid switch %1) & goto :Help
   if not defined PATHVAR if "%METHOD%"=="Echo" set "PATHVAR=%ARG%" & goto :next_arg
   :# Now rebuild a list with ; separators, as cmd.exe removes the ; 
  -if "%VALUE%"=="" set "METHOD=Add"
  -if not "%VALUE%"=="" set "VALUE=%VALUE%;"
  +if not defined VALUE set "METHOD=Add"
  +if defined VALUE set "VALUE=%VALUE%;"
   set "VALUE=%VALUE%%~1"
   goto :next_arg
   
  
positive.code: if "%~1"=="-a" set "METHOD=Add" & set "VALUE=%~2" & goto :next_2nd_arg
  if "%~1"=="-b" set "WHERE=before" & set "BEFORE=%~2" & goto :next_2nd_arg
  if "%~1"=="-c" set "OBJECT=LocalPath" & goto :next_arg
  if "%~1"=="-d" set "DEBUG=1" & goto :next_arg
  if "%~1"=="-h" set "WHERE=head" & goto :next_arg
  if "%~1"=="-l" set "METHOD=Echo" & goto :next_arg
  if "%~1"=="-m" set "METHOD=Move" & set "VALUE=%~2" & goto :next_2nd_arg
  
negative.code: setlocal EnableExtensions DisableDelayedExpansion
  :# Note: The Path is usuallly in a REG_EXPAND_SZ, but sometimes in a REG_SZ. 
  set MCMD=reg query "%MKEY%" /v "%PATHVAR%" 2^>NUL ^| findstr REG_
  %ECHOVAL.D% MCMD
  for /f "tokens=1,2,*" %%a in ('"%MCMD%"') do set "MPATH=%%c"
  :MasterPath.Get.TrimR
  if "%MPATH:~-1%"==";" set "MPATH=%MPATH:~0,-1%" & goto :MasterPath.Get.TrimR
  endlocal & set "MPATH=%MPATH%" & exit /b
  
  :MasterPath.Echo
  if "%VERBOSE%"=="1" echo :# Global %OWNER% PATH list items
  call :MasterPath.Get
  :# Display path list items, one per line
  if defined MPATH echo.%MPATH:;=&echo.%
  exit /b
  
  :MasterPath.Add1 %1=path to add to %PATHVAR%
  