forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Drastically rewrote the path script to handle Explorer's stubborn gra…
…sp of EnvVars. Tested on Win7.
- Loading branch information
Showing
1 changed file
with
68 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,71 @@ | ||
@echo off | ||
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION | ||
@ECHO OFF | ||
SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe | ||
|
||
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v Path /t REG_SZ /d "%path%;C:\MinGW\bin;C:\MinGW\msys\1.0\bin" > nul | ||
echo. | ||
SET NEWPATH1="C:\MinGW\msys\1.0\bin" | ||
SET NEWPATH2="C:\MinGW\bin" | ||
|
||
if NOT ["%errorlevel%"]==["0"] ( | ||
echo FAILED. You probably just need to run the script with administrator privileges. | ||
) else ( | ||
echo Success! | ||
setx QMK QMK > nul | ||
) | ||
:: Make sure paths exist | ||
IF NOT EXIST !NEWPATH1! (ECHO Path not found: %NEWPATH1% && GOTO ExitBatch) | ||
IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch) | ||
|
||
echo. | ||
pause | ||
:: 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 |