BAT大法好,没的说。因为每次跑机房都要重新配置环境变量,所以就想着学一下BAT,学了几天。感觉挺简单的。然后实践了这么久发现还是挺注意细节,而且命令行的知识面要广。。。好忧桑。
我的代码考虑到了以下三点:
1)检查要添加的目录是否存在,不存在就goodbye
2)检查要添加的目录是否已经存在在环境变量中
3)添加变量前询问是否添加(= =要是点开之后后悔又不想添加肿么破?)
如果你想添加其他的环境变量,可以看着改动一下。
前提是你得有一点BAT的基础知识。
好了,代码上。

@echo off
echo 本文件将设置当前目录的MinGw gcc g++环境变量
echo 请确保当前文件放置在MinGw 根目录下
echo ----By CHC 2014.4.9
::修改于 ----By CHC 2014.7.19
pause
setlocal enabledelayedexpansion
set str1=\bin
set str2=\include
set str3=\lib
set _path=%path%
echo "%cd%!str1!"
echo "%cd%!str2!"
echo "%cd%!str3!"
for /L %%i in (1,1,3) do (
if not exist "%cd%!str%%i!" (
echo 不存在%cd%!str%%i!这个目录
goto end
)
)
echo 将要设置这三个路径为环境变量 是否确定[Y/N]
set /p yesno=
if /i "!yesno!" == "y" goto begin
goto end

:begin
echo !_path!>tx.txt

for /L %%i in (1,1,3) do (
echo 查找 %cd%!str%%i! 是否存在环境变量中
type tx.txt|findstr /C:"%cd%!str%%i!">nul&&(
rem 找到str1
echo %cd%!str%%i!已存在
)||(
rem 说明环境变量中不存在这个路径 添加进path
echo 不存在环境变量中
set _path=!_path!;%cd%!str%%i!
)
)
set _path=!_path!;
echo 去除已存在的路径 重新整理过后 获得的路径为
echo !_path!
echo 再次确认是否要将路径添加到环境变量[Y/N]
set /p yesno=
if "!yesno!" == "y" goto begin1
goto end

:begin1
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path /t REG_EXPAND_SZ /d "!_path!" /f

:end
echo good bye~!!!
pause