4

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

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

它工作正常。

我的问题是:

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

4

2 回答 2

11
@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%"
)
于 2013-06-13T17:11:48.977 回答
-1

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

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

于 2013-06-13T12:31:07.853 回答