Прежде всего, спасибо за любые предложения. После некоторых настроек рутины код выглядит так:PATH Variable не обновляется в пакетном файле
REM ========================================================================
REM Parses out Path entries
REM =======================================================================
SETLOCAL
SET TEMPPATH="%PATH%"
SET NEWPATH =""
CALL :parse %TEMPPATH%
GOTO :NEXT
:PARSE
SET list=%1
SET list=%list:"=%
FOR /F "tokens=1* delims=;" %%a IN ("%list%") DO (
REM ECHO A: %%a
REM ECHO B: %%b
IF NOT "%%a"=="%VAR_JAVA_HOME%" CALL :SUB "%%a"
IF NOT "%%b"=="" CALL :PARSE "%%b"
)
EXIT /b
:SUB
ECHO Passed into subroutine: %1
IF DEFINED NEWPATH IF "%NEWPATH%" == "" (
SET NEWPATH=%1;
ECHO IN SUB: %NEWPATH%
)
IF DEFINED NEWPATH IF "%NEWPATH:~0,1%, %1" == "" (
SET NEWPATH=%NEWPATH%;%1
ECHO Updated NEWPATH: %NEWPATH%
)
REM ECHO New path variable: %NEWPATH%
EXIT /b
:NEXT
ECHO New path variable: %NEWPATH%
ECHO Removed Java entries from the path...
ENDLOCAL
Подборка работает и работает. Отдельные записи в пути разбираются правильно и передаются в подпрограмму. Однако новый путь не создается или обновляется.
Passed into subroutine: "C:\Windows\system32"
Passed into subroutine: "C:\Windows"
Passed into subroutine: "C:\Windows\System32\Wbem"
Passed into subroutine: "C:\Windows\System32\WindowsPowerShell\v1.0\"
New path variable:<nothing here>
Любые комментарии были бы весьма признательны.
Russ
спасибо @marc_s – rray