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
	
	 IBNobody
						IBNobody