使用批处理临时切换环境变量

话题要从我使用 Pelican 生成静态站 html 文件说起。使用 Pelican 大概是在 2014 年,那时 Pelican 还是基于 Python 2.x,虽然后期 Pelican 也更新到基于 Python 3.x,但由于个人太懒,所以截至目前还在使用旧版的 Pelican(一直未更新^.^)。

但随着时间推移 Python 3.x 已成为主流,例如 You-Get。所以目前我有同时安装 Python 2.7 与 Python 3.5,使用前按需求先切换环境变量。如下图:

使用批处理临时切换环境变量

但是每次使用前都需要切换环境变量也算是比较麻烦了。上网查询知道可以使用批处理临时切换环境变量,正好我在 Windows 下使用 Pelican 也采用批处理,所以决定尝试一下。

打开 cmder 测试,依次输入以下命令:

@echo %PATH%
set my_path=D:\Python27\App;D:\Python27\App\Scripts;
set path=%my_path%
@echo %PATH%

将得到以下结果。

使用批处理临时切换环境变量

第一条命令是显示当前系统变量下的 path 变量;

第二条命令是将 Python 2.7 的工作路径添加到中间路径变量中;

第三条命令是将中间路径变量赋值给 系统路径变量

第四条命令是再次显示 系统路径变量值

可见系统环境变量经过上述步骤已被更改。不过当再次打开系统属性环境变量选项会发现环境变量与图 1 保持一致,未发生变动,说明以上命令确实只在当前命令窗口有效,这样正好满足使用需求。需要注意的是上述命令无法直接将待添加的工作路径直接赋值给 系统路径变量 而需要使用中间路径变量进行过渡。

在原 bat 文件内添加第二条、第三条命令如下:

set my_path=D:\Python27\App;D:\Python27\App\Scripts;
set path=%my_path%
cd /d %~dp0
pelican -D -s pelicanconf.py content -o nero
pause

嗯,测试可行。

文章作者
发布时间
分类
标签