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