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