Drastically rewrote the path script to handle Explorer's stubborn grasp of EnvVars. Tested on Win7.
This commit is contained in:
		
							parent
							
								
									ae47275bf3
								
							
						
					
					
						commit
						a3ed432273
					
				
					 1 changed files with 68 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue