b437de8874
Running this as a non-administrator appears to work at first, but the changes wouldn't stick on my Win 8.1 system. It's weird, but this script needs to run as admin.
77 lines
No EOL
2.1 KiB
Batchfile
77 lines
No EOL
2.1 KiB
Batchfile
@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 |