通过批处理文件搜索和替换环境变量的值?

通过批处理文件搜索和替换环境变量的值?

我想创建一个批处理文件来快速切换 PATH 变量,以便能够在不同的环境中工作,然后创建另一个批处理文件来恢复它。我认为这可以通过setx某种形式的搜索和替换来完成,但我对批处理文件一无所知。

答案1

虽然这并没有直接回答你的问题,但它确实解决了你的问题,因此,我发现这是一个答案,而不是评论。

PATH 环境变量可以存储多个路径。要搜索的路径的顺序是从左到右。这实际上意味着,如果您将路径添加到 PATH 环境变量的开头,则会首先搜索该路径。

这样就无需替换现有路径,除非您需要确保删除另一条路径,而此解决方案无法做到这一点。

要将文件夹添加到 PATH 环境的开头,请使用以下代码:

set PATH=c:\myfolder;%PATH%

;%PATH% 必须存在,否则您将清除路径设置并用您自己的文件夹完全替换它。

假设使用了 set 命令,这将仅存储当前会话的路径。要将路径传输到 Windows 环境,以便每个会话都记住它,您需要执行以下命令:

setx PATH "%PATH%"

鉴于您想稍后使用它来恢复它,我建议创建两个批处理文件来启动您想要使用不同路径的任何文件,并且在使用备用路径的文件中,您从 SET 命令开始,而对于使用真实路径的那个,则不需要。

这样,每次运行备用路径的批处理文件时,都会首先添加并搜索该路径,以便找到该路径。

最后,可以根据其他环境变量设置 PATH,以便您进行切换。

首先,您需要创建原始路径的 2 个副本:

setx PATH_orig "%PATH%"
setx PATH_alt "%PATH%"

现在按照通常编辑 PATH 的方式编辑 PATH_alt。

现在您可以使用以下命令简单地切换:

:: Restore to original
setx PATH "PATH_orig"

:: Set alternate path
setx PATH "PATH_alt"

相关内容