summaryrefslogtreecommitdiffstats
path: root/1-setup-path-win.bat
blob: f612d0f4a7998ef60d00c32931a6310ec922a0a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@ECHO OFF
SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe

SET NEWPATH1="C:\MinGW\msys\1.0\bin"
SET NEWPATH2="C:\MinGW\bin"

:: Make sure we're running with administrator privileges
NET SESSION >nul 2>&1
IF ERRORLEVEL 1 (
	ECHO FAILED. Run this script with administrator privileges.
	GOTO ExitBatch
)

:: Make sure the second path exists. The first path won't be created until the second script is run
IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch)

:: Add paths
CALL :AddPath %NEWPATH1%
CALL :AddPath %NEWPATH2%

:: Branch to UpdateEnv if we need to update
IF DEFINED UPDATE (GOTO UpdateEnv)

GOTO ExitBatch

:: -----------------------------------------------------------------------------

:UpdateEnv
ECHO Making updated PATH go live . . .
REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
setx TEMPVAR 1 > nul 2>&1
REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer)
GOTO ExitBatch

:: -----------------------------------------------------------------------------

:ExitBatch
ENDLOCAL
PAUSE
EXIT /b

:: -----------------------------------------------------------------------------

:AddPath <pathToAdd>
ECHO %PATH% | FINDSTR /C:"%~1" > nul
IF ERRORLEVEL 1 (
	REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1"  > nul 2>&1
	IF ERRORLEVEL 0 (
		ECHO Adding   %1 . . . Success!
		SET "PATH=%PATH%;%~1"
		SET UPDATE=1
	) ELSE (
		ECHO Adding   %1 . . . FAILED. Run this script with administrator privileges.
	)	
) ELSE (
	ECHO Skipping %1 - Already in PATH
	)
EXIT /b

:: -----------------------------------------------------------------------------

:KillExplorer

ECHO Your desktop is being restarted, please wait. . .   
ping -n 5 127.0.0.1 > NUL 2>&1   
ECHO Killing process Explorer.exe. . .   
taskkill /f /im explorer.exe   
ECHO.   
ECHO Your desktop is now loading. . .   
ping -n 5 127.0.0.1 > NUL 2>&1   
ECHO.   
ping -n 5 127.0.0.1 > NUL 2>&1   
START explorer.exe
START explorer.exe %CD%
EXIT /b