Windows CMD - 从批处理文件中重置路径变量?

标签 windows path batch-file cmd

我有一个批处理文件,它通过在前面加上几个地址来修改 PATH 变量。当用户注销然后再登录时,PATH 将重置为其原始值(在运行批处理文件之前)。这种行为是可以的。

但是,如果多次运行批处理文件,则会重新添加相同的值,我最终会得到一个过长、冗余的 PATH 变量,每次批处理运行后都会变得更长。

我想将变量重置为用户登录时的任何值,然后再添加值。我认为解决方案是将原始值写入临时文件并读回,但有更好的方法吗?

最佳答案

与其将原始值写入临时文件,不如将其写入另一个环境变量:

if not defined ORIGINAL-PATH set ORIGINAL-PATH=%PATH%
set PATH=c:\extra\stuff;%ORIGINAL-PATH%

但最好显式检查您想要的字符串是否已经在 PATH 中,如下所示:

echo %PATH% | findstr /c:"c:\extra\stuff;" > nul || set PATH=c:\extra\stuff;%PATH%

关于Windows CMD - 从批处理文件中重置路径变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086965/

相关文章:

c++ - 如何在 Windows 中管理 googletest 中的断言

c# - 将 app.config 文件重定位到自定义路径

python - 项目结构的绝对进口和相对进口

java - 如何比较 Java 中的路径等价性?

c - C 中的文本文件解析 - 是否调用批处理文件

windows - MinGW GCC 通配符

c++ - 在同一个 DLL 中使用 _COM_SMARTPTR CreateInstance 而无需注册

windows - 用于重命名多个文件夹的 .bat 文件

windows - 通过注册表将目录添加到系统路径变量中

powershell - 系统找不到指定的文件 - 任务计划程序