Эта версия работает довольно хорошо. Он просто проверяет, находится ли vim71 в пути, и добавляет его, если нет.
@echo off
echo %PATH% | find /c /i "vim71" > nul
if not errorlevel 1 goto jump
PATH = C:\Program Files\Vim\vim71\;%PATH%
:jump
Эта демонстрация иллюстрирует логику уровня ошибки:
@echo on
echo %PATH% | find /c /i "Windows"
if "%errorlevel%"=="0" echo Found Windows
echo %PATH% | find /c /i "Nonesuch"
if "%errorlevel%"=="0" echo Found Nonesuch
В коде vim71 логика обратная, поскольку уровень ошибки 1 эквивалентен уровню ошибки> = 1. Из этого следует, что уровень ошибки 0 всегда будет иметь значение true, поэтому используется "not errorlevel 1
".
Postscript Проверка может не потребоваться, если вы используете setlocal и endlocal для локализации настроек среды, например,
@echo off
setlocal
PATH = C:\Program Files\Vim\vim71\;%PATH%
rem your code here
endlocal
После endlocal вы вернетесь к исходному пути.