Here's a version that persits the current user's PATH (i.e., not
system-wide):

rem SOF
@echo off
set "OWNPATH=%~dp0"
set "PLATFORM=mswin"

if defined ProgramFiles(x86)                        set "PLATFORM=win64"
if "%PROCESSOR_ARCHITECTURE%"=="AMD64"              set "PLATFORM=win64"
if exist "%OWNPATH%tex\texmf-mswin\bin\context.exe" set "PLATFORM=mswin"
if exist "%OWNPATH%tex\texmf-win64\bin\context.exe" set "PLATFORM=win64"

set "TeXPath=%OWNPATH%tex\texmf-%PLATFORM%\bin"

echo %PATH% | findstr "texmf-%PLATFORM%" > nul

rem Only update the PATH if not previously updated
if ERRORLEVEL 1 (
  setlocal enabledelayedexpansion
  set "Exists=false"
  set "Key=HKCU\Environment"

  for /F "USEBACKQ tokens=2*" %%A in (`reg query %%Key%% /v PATH 2^>nul`)
do (
    if not "%%~B" == "" (
      set "Exists=true"

      rem Preserve the existing PATH
      echo %%B > currpath.txt

      rem Change the PATH environment variable
      setx PATH "%%B;%TeXPath%"
    )
  )

  rem The user-defined PATH does not exist, create it
  if "!Exists!" == "false" (
    rem Change the user PATH environment variable
    setx PATH "%TeXPath%"
  )

  endlocal

  rem Update the current session
  set "PATH=%PATH%;%TeXPath%"
)
rem EOF
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to