Windows 使用批处理分析和修改$PATH
我试图解析path变量,并将任何目录结构删除到JAVA_HOME或windows上安装JAVA的备用位置。最终目标是从path变量中删除位置并重置变量。这就是我开始的Windows 使用批处理分析和修改$PATH,windows,batch-file,Windows,Batch File,我试图解析path变量,并将任何目录结构删除到JAVA_HOME或windows上安装JAVA的备用位置。最终目标是从path变量中删除位置并重置变量。这就是我开始的 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 (
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 (
::ECHO A: %%a
::ECHO B: %%b
IF NOT "%%a"=="%VAR_JAVA_HOME%" CALL :SUB "%%a"
IF NOT "%%b"=="" CALL :PARSE "%%b"
)
exit /b
:SUB
::echo in subroutine
::echo Passed into subroutine: %1
::echo NEW PATH is: "%NEWPATH%"
IF DEFINED NEWPATH IF %NEWPATH%==""(
SET NEWPATH=%1;
ECHO "IN SUB:" %NEWPATH%
)
IF DEFINED NEWPATH IF "NEWPATH:~1, %1"==""(
SET NEWPATH="%NEWPATH%";%1
ECHO %NEWPATH%
)
ECHO "New path varible:" "%NEWPATH%"
exit /b
:NEXT
::ECHO "Removed Java entries from the path..."
ENDLOCAL
当脚本运行时,我收到以下错误:
C:\Windows此时意外出现
如有任何建议,将不胜感激
俄罗斯显而易见的问题是: 每个IF中的块打开前没有空格。 ::循环内的注释;切换到rem。。。。。。 新路径:~1,%1在语法上不正确;例如,使用%NEWPATH:~1%从第二个字符开始提取,或使用%NEWPATH:~0,1%仅提取第一个字符。通过运行set/,可以获得更多帮助?在命令提示符控制台中。