配置策略 一 系統環境變量自動配置腳本

0 使用系統環境變量來快速啓動程序

由於強迫症,不喜在桌面放圖標。於利用任務欄的地址欄工具與系統環境變量來啓動應用程序。但是每次重裝完系統要配置系統環境變量還是件麻煩事兒。尤其是需要等到所有必裝軟件安裝完畢,還要等到像VS這種會將PATH中的變量引用展開的應用程序安裝完後再去挨個添加環境變量。

1 用腳本

由於BAT屬於初學,代碼質量與效率還請見諒。

::*************************************************
::      系統環境變量配置腳本
::功能:根據指定的系統變量名與文件列表,以文件
::  列表中文件所在目錄爲值創建系統環境變量
::  ,並添加到PATH中
::條件:管理員權限
::備註:當前命令行中未生效,其他環境永久生效。
::作者:[email protected]
::日期:2016/10/19
::更新:[email protected]
::日期: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 ENABLEDELAYEDEXPANSION

FOR %%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腳本
:EXISTED

GOTO ADDTIONAL

:ADDTIONAL

::構建目標PATH值
SET VALUE=%PATH%;%%%TARGET%%%;

::將新建環境變量添加到PATH
WMIC ENVIRONMENT WHERE "name='Path' and username='<system>'" SET VariableValue="%VALUE%"

:END

@echo on
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章