(编辑:jimmy 日期: 2024/12/23 浏览:2)
貌似没有很优美的做法,只能把%Path%按分号分割,然后一段一段地比较。
:InPath [In]Path [Out]0/1 SETLOCAL SET LocalPathCopy=%PATH% SET Result=0 :WHILE IF "%LocalPathCopy" == "" GOTO WEND FOR /F "delims=;" %%I IN ("%LocalPathCopy%") DO ( IF /I "%%~I" == "%~1" ( SET Result=1 GOTO WEND ) ) FOR /F "delims=; tokens=1,*" %%I IN ("%LocalPathCopy%") DO ( SET LocalPathCopy=%%~J ) GOTO WHILE :WEND :InPathRet ENDLOCAL & SET %2=%Result% & GOTO :EOF
使用方法:
SET x=C:\Windows Call :InPath %x% Result IF %Result% == 0 SET Path=%Path%;%x%