如果尚未存在,则如何将新路径插入到系统路径变量中

时间:2013-06-13 11:47:40

标签: windows batch-file setx

我正在使用以下命令将路径附加到Windows系统PATH变量:

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

工作正常。

我的问题是:

如何将路径(在这种情况下为%ProgramFiles%\ MySQL \ MySQL Server 5.5 \ bin)附加到系统PATH变量中,同时还检查它是否已经存在,如果不存在则不添加两次?

2 个答案:

答案 0 :(得分:10)

@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%"
)

答案 1 :(得分:-1)

我认为最简单的方法是检查它是否存在,然后如果它存在则附加到它,或者如果不存在则直接写入它。从您的标签我假设您正在尝试从批处理文件中执行此操作。 This page似乎包含一个完全符合您需求的示例:

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添加到路径中,只需将其替换为您要使用的内容即可。当然,如果您不希望显示消息,您可能需要删除回显线或完全禁用回显。