配置策略 一 系统环境变量自动配置脚本

来源:互联网 发布:qq游戏 for mac 编辑:程序博客网 时间:2024/06/04 01:28

0 使用系统环境变量来快速启动程序

由于强迫症,不喜在桌面放图标。于利用任务栏的地址栏工具与系统环境变量来启动应用程序。但是每次重装完系统要配置系统环境变量还是件麻烦事儿。尤其是需要等到所有必装软件安装完毕,还要等到像VS这种会将PATH中的变量引用展开的应用程序安装完后再去挨个添加环境变量。

1 用脚本

由于BAT属于初学,代码质量与效率还请见谅。

::*************************************************::      系统环境变量配置脚本::功能:根据指定的系统变量名与文件列表,以文件::  列表中文件所在目录为值创建系统环境变量::  ,并添加到PATH中::条件:管理员权限::备注:当前命令行中未生效,其他环境永久生效。::作者:Psychic27@Outlook.com::日期:2016/10/19::更新:Psychic27@Outlook.com::日期:2016/10/20::未达成:1.PATH中对该变量的引用检测,由于CMD对%敏::    感,可以动态生成VBS脚本用于检测::    2.运行时发起管理员权限申请,考虑VBS::*************************************************::关闭回显@echo off::工作目录SET DIR_WORK=%CD%::数据目录SET DIR_DATA=Data::临时文件SET FILE_TMP=%DIR_WORK%\%DIR_DATA%\tmp.dat::备份文件SET FILE_BACKUP=%DIR_WORK%\%DIR_DATA%\Environment.bak::文件列表SET APPLICATION=ApplyEnvironment.cmd boostmaster.exe QQ.exe QQMusic.exe and so on::目标环境变量值SET VALUE=::目标环境变量名SET TARGET=TEST::检测或创建数据目录IF NOT EXIST %DIR_WORK%\%DIR_DATA% MKDIR %DIR_WORK%\%DIR_DATA%::备份PATH变量WMIC ENVIRONMENT WHERE "name='Path' and username='<system>'" GET VariableValue 1>%FILE_BACKUP%::检测TARGET是否已存在WMIC ENVIRONMENT WHERE "name='%TARGET%' and username='<system>'" GET VariableValue 2>%FILE_TMP%FOR /F "tokens=1" %%i in (%FILE_TMP%) do (    IF '%%i' == 'No' GOTO CREATION    IF NOT '%%i' == 'No' GOTO EXISTED):CREATION::获取所有的驱动器号到临时文件(我就固定那几个驱动器号,就没用这个了,直接用列表)::WMIC LOGICALDISK WHERE "DriveType=3" Get Name >%FILE_TMP%::遍历应用程序字符串、驱动器以获取所有路径echo.>%FILE_TMP%SETLOCAL ENABLEDELAYEDEXPANSIONFOR %%A in (%APPLICATION%) do (        FOR %%D in (C: L: P: S:) do (            ::进入驱动器            %%D            ::获取文件绝对路径            dir /s /b %%A >>%FILE_TMP%  2>nul       ))::获取程序路径FOR /F "delims=;" %%P in (%FILE_TMP%) do (    ::去掉文件名    SET TEMP=%%~dpP    ::去掉最后的空格    SET TEMP=!TEMP:~0,-1!    ::保存到结果字符串    SET VALUE=!VALUE!;!TEMP!)::删除临时文件DEL %FILE_TMP%::去除第一个;与添加最后的\SET VALUE=%VALUE:~1%\ENDLOCAL ::在系统环境变量中创建目标WMIC ENVIRONMENT create name="%TARGET%", username="<system>", VariableValue="%VALUE%"::从备份中检测PATH中是否已存在该环境变量:DETECT::由于CMD对%敏感,可以考虑加入VBS来实现存在性检测::创建VBS脚本::调用VBS脚本::删除VBS脚本:EXISTEDGOTO ADDTIONAL:ADDTIONAL::构建目标PATH值SET VALUE=%PATH%;%%%TARGET%%%;::将新建环境变量添加到PATHWMIC ENVIRONMENT WHERE "name='Path' and username='<system>'" SET VariableValue="%VALUE%":END@echo on
0 0
原创粉丝点击