基本上,我知道我可以通过控制面板修改路径变量。但是,我想知道是否有一种方法可以通过批处理编程包含一个临时路径?这样它只在批处理文件执行期间使用。我不想让人们为了使用我的批处理文件而修改路径变量。


就像任何其他环境变量一样,使用SET:

SET PATH=%PATH%;c:\whatever\else

如果你想先做一些安全检查,先检查新路径是否存在:

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

如果你想让它在批处理文件的本地,使用setlocal:

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

仔细阅读setlocal/endlocal的文档,并查看该网站上的其他引用-函数也非常有趣,语法也很棘手。

语法页面应该让您从基础开始。


没错,但它不会永久地改变它,而只是用于当前的命令提示符。

如果你想永久地改变它,你必须使用例如:

setx ENV_VAR_NAME "DESIRED_PATH" /m

这将永久地改变它,是的,你可以在另一个批处理脚本中覆盖它。


这里有一个重要的细节:

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

不工作,而

set PATH=C:\linutils;C:\wingit\bin;%PATH%

的工作原理。区别就在于引文!

UPD也看到venimus的评论