Как вставить новый путь в системную переменную, если его там еще нет

Я использую команду ниже, чтобы добавить путь к переменной PATH системы Windows:

setx PATH "%PATH%;%ProgramFiles%\MySQL\MySQL Server 5.5\bin"

Работает нормально.

Мой вопрос:

Как добавить путь (в данном случае%ProgramFiles%\MySQL\MySQL Server 5.5\bin) в системную переменную PATH, одновременно проверив, что его там еще нет, и не добавив его дважды, если это произойдет?

2 ответа

Решение
@echo off
setlocal EnableDelayedExpansion

set "pathToInsert=%ProgramFiles%\MySQL\MySQL Server 5.5\bin"

rem Check if pathToInsert is not already in system path
if "!path:%pathToInsert%=!" equ "%path%" (
   setx PATH "%PATH%;%pathToInsert%"
)

Я думаю, что самый простой способ - проверить, существует ли он, а затем добавить к нему, если он есть, или просто написать на него, если его нет. Из ваших тегов я предполагаю, что вы пытаетесь сделать это из командного файла. Эта страница содержит пример, который идеально соответствует вашим потребностям:

IF "%PATH%" == "" GOTO NOPATH
:YESPATH
@ECHO The PATH environment variable was detected.
PATH=C:\DOS;%PATH%
GOTO END
:NOPATH
@ECHO The PATH environment variable was NOT detected.
PATH=C:\DOS;
GOTO END
:END

Этот пакетный код добавит C:\DOS к пути, просто замените его тем, что вы хотите использовать. И, конечно, вы можете удалить линии эха или вообще отключить эхо, если вы не хотите, чтобы сообщения появлялись.

Другие вопросы по тегам