]> git.donarmstrong.com Git - qmk_firmware.git/blob - 1-setup-path-win.bat
Merge pull request #249 from nrrkeene/master
[qmk_firmware.git] / 1-setup-path-win.bat
1 @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
2 @ECHO OFF
3 SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe
4
5 SET NEWPATH1="C:\MinGW\msys\1.0\bin"
6 SET NEWPATH2="C:\MinGW\bin"
7
8 :: Make sure we're running with administrator privileges
9 NET SESSION >nul 2>&1
10 IF ERRORLEVEL 1 (
11         ECHO FAILED. Run this script with administrator privileges.
12         GOTO ExitBatch
13 )
14
15 :: Make sure the second path exists. The first path won't be created until the second script is run
16 IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch)
17
18 :: Add paths
19 CALL :AddPath %NEWPATH1%
20 CALL :AddPath %NEWPATH2%
21
22 :: Branch to UpdateEnv if we need to update
23 IF DEFINED UPDATE (GOTO UpdateEnv)
24
25 GOTO ExitBatch
26
27 :: -----------------------------------------------------------------------------
28
29 :UpdateEnv
30 ECHO Making updated PATH go live . . .
31 REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
32 setx TEMPVAR 1 > nul 2>&1
33 REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
34 IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer)
35 GOTO ExitBatch
36
37 :: -----------------------------------------------------------------------------
38
39 :ExitBatch
40 ENDLOCAL
41 PAUSE
42 EXIT /b
43
44 :: -----------------------------------------------------------------------------
45
46 :AddPath <pathToAdd>
47 ECHO %PATH% | FINDSTR /C:"%~1" > nul
48 IF ERRORLEVEL 1 (
49         REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1"  > nul 2>&1
50         IF ERRORLEVEL 0 (
51                 ECHO Adding   %1 . . . Success!
52                 SET "PATH=%PATH%;%~1"
53                 SET UPDATE=1
54         ) ELSE (
55                 ECHO Adding   %1 . . . FAILED. Run this script with administrator privileges.
56         )       
57 ) ELSE (
58         ECHO Skipping %1 - Already in PATH
59         )
60 EXIT /b
61
62 :: -----------------------------------------------------------------------------
63
64 :KillExplorer
65
66 ECHO Your desktop is being restarted, please wait. . .   
67 ping -n 5 127.0.0.1 > NUL 2>&1   
68 ECHO Killing process Explorer.exe. . .   
69 taskkill /f /im explorer.exe   
70 ECHO.   
71 ECHO Your desktop is now loading. . .   
72 ping -n 5 127.0.0.1 > NUL 2>&1   
73 ECHO.   
74 ping -n 5 127.0.0.1 > NUL 2>&1   
75 START explorer.exe
76 START explorer.exe %CD%
77 EXIT /b