@ECHO off REM REM User Account Control for elevate rights REM >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" REM if '%errorlevel%' NEQ '0' ( REM goto UACPrompt REM ) else ( goto gotAdmin ) REM :UACPrompt REM echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" REM echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" REM "%temp%\getadmin.vbs" REM exit /B REM :gotAdmin REM if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) REM @CD C:\Source\Atrium_CD\SQL Server Scripts REM @ECHO Working Directory: %cd% REM @ECHO. REM Needed to change text color SETLOCAL EnableExtensions DisableDelayedExpansion FOR /F %%a in ('echo prompt $E ^| cmd') DO ( SET "ESC=%%a" ) SETLOCAL EnableDelayedExpansion REM https://en.wikipedia.org/wiki/ANSI_escape_code#Colors REM Test colors REM echo !ESC![101;93m STYLES !ESC![0m REM echo ^[4m !ESC![4mUnderline!ESC![0m REM echo ^[0m !ESC![0mReset!ESC![0m REM echo ^[1m !ESC![1mBold!ESC![0m REM echo ^[7m !ESC![7mInverse!ESC![0m REM echo. REM echo !ESC![101;93m NORMAL FOREGROUND COLORS !ESC![0m REM echo ^[30m !ESC![30mBlack!ESC![0m (black) REM echo ^[31m !ESC![31mRed!ESC![0m REM echo ^[32m !ESC![32mGreen!ESC![0m REM echo ^[33m !ESC![33mYellow!ESC![0m REM echo ^[34m !ESC![34mBlue!ESC![0m REM echo ^[35m !ESC![35mMagenta!ESC![0m REM echo ^[36m !ESC![36mCyan!ESC![0m REM echo ^[37m !ESC![37mWhite!ESC![0m REM echo. REM echo !ESC![101;93m NORMAL BACKGROUND COLORS !ESC![0m REM echo ^[40m !ESC![40mBlack!ESC![0m REM echo ^[41m !ESC![41mRed!ESC![0m REM echo ^[42m !ESC![42mGreen!ESC![0m REM echo ^[43m !ESC![43mYellow!ESC![0m REM echo ^[44m !ESC![44mBlue!ESC![0m REM echo ^[45m !ESC![45mMagenta!ESC![0m REM echo ^[46m !ESC![46mCyan!ESC![0m REM echo ^[47m !ESC![47mWhite!ESC![0m (white) REM echo. REM echo !ESC![101;93m STRONG FOREGROUND COLORS !ESC![0m REM echo ^[90m !ESC![90mWhite!ESC![0m REM echo ^[91m !ESC![91mRed!ESC![0m REM echo ^[92m !ESC![92mGreen!ESC![0m REM echo ^[93m !ESC![93mYellow!ESC![0m REM echo ^[94m !ESC![94mBlue!ESC![0m REM echo ^[95m !ESC![95mMagenta!ESC![0m REM echo ^[96m !ESC![96mCyan!ESC![0m REM echo ^[97m !ESC![97mWhite!ESC![0m REM echo. REM echo !ESC![101;93m STRONG BACKGROUND COLORS !ESC![0m REM echo ^[100m !ESC![100mBlack!ESC![0m REM echo ^[101m !ESC![101mRed!ESC![0m REM echo ^[102m !ESC![102mGreen!ESC![0m REM echo ^[103m !ESC![103mYellow!ESC![0m REM echo ^[104m !ESC![104mBlue!ESC![0m REM echo ^[105m !ESC![105mMagenta!ESC![0m REM echo ^[106m !ESC![106mCyan!ESC![0m REM echo ^[107m !ESC![107mWhite!ESC![0m REM echo. REM echo !ESC![101;93m COMBINATIONS !ESC![0m REM echo ^[31m !ESC![31mred foreground color!ESC![0m REM echo ^[7m !ESC![7minverse foreground ^<-^> background!ESC![0m REM echo ^[7;31m !ESC![7;31minverse red foreground color!ESC![0m REM echo ^[7m and nested !ESC![31m !ESC![7mbefore !ESC![31mnested!ESC![0m REM echo ^[31m and nested !ESC![7m !ESC![31mbefore !ESC![7mnested!ESC![0m REM Display System information REM systeminfo | findstr /B /C:"OS Name" /C:"OS Version" REM ECHO. @SET version="" FOR /f "tokens=4-5 delims=. " %%i IN ('ver') DO SET "VERSION=%%i.%%j" IF "%version%" EQU "6.3" ECHO Windows 8.1 IF "%version%" EQU "6.2" ECHO Windows 8 IF "%version%" EQU "6.1" ECHO Windows 7 IF "%version%" EQU "6.0" ECHO Windows Vista IF "%version%" EQU "10.0" ECHO Windows 10 ECHO. rem Query Registy @ECHO Querying Registry @ECHO. @SET SQLCurrentVersion=0 @FOR /F "tokens=2,* skip=2" %%L IN ( 'reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\CDVI_ATRIUM\MSSQLServer\CurrentVersion" /v CurrentVersion' ) DO SET "SQLCurrentVersion=%%M" @SET SQL2012CurrentVersion=0 @FOR /F "tokens=2,* skip=2" %%L IN ( 'reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.CDVI_ATRIUM\MSSQLServer\CurrentVersion" /v CurrentVersion' ) DO SET "SQL2012CurrentVersion=%%M" @SET SQLServerDefaultVersion=0 @SET SQLServer2012Version=11.0.7001.0 @SET _SQLCurrentVersion= FOR /f "skip=1" %%v in ("%SQLCurrentVersion%") DO IF NOT DEFINED _SQLCurrentVersion SET _SQLCurrentVersion=%%v FOR /f "delims=. tokens=1,2,3,4" %%a in ("%SQLCurrentVersion%") DO ( SET _SQLCurrentVersion.Major=%%a SET _SQLCurrentVersion.Minor=%%b SET _SQLCurrentVersion.Build=%%c SET _SQLCurrentVersion.Revision=%%d ) @SET _SQLServer2012Version= FOR /f "skip=1" %%v in ("%SQLServer2012Version%") DO IF NOT DEFINED _SQLServer2012Version SET _SQLServer2012Version=%%v FOR /f "delims=. tokens=1,2,3,4" %%a in ("%SQLServer2012Version%") DO ( SET _SQLServer2012Version.Major=%%a SET _SQLServer2012Version.Minor=%%b SET _SQLServer2012Version.Build=%%c SET _SQLServer2012Version.Revision=%%d ) @ECHO. @ECHO !ESC![96mCDVI_ATRIUM SQL Server Current Version %SQLCurrentVersion%!ESC![0m @ECHO. @ECHO !ESC![96mSQL Server 2012 EXPRESS Current Version %SQL2012CurrentVersion%!ESC![0m @ECHO. "..\Tools\AtriumDbSetup\AtriumDbSetup.exe" -R @IF ERRORLEVEL 0 GOTO :StartSequence @IF ERRORLEVEL 1 GOTO :PCNeedsToBeRebootPrompt :PCNeedsToBeRebootPrompt @ECHO. @ECHO !ESC![93mThere are pending system changes that require a computer restart.!ESC![0m @ECHO !ESC![93mContinue [YES, NO]!ESC![0m CHOICE /T 10 /C YN /D N SET answer=%ERRORLEVEL% IF %answer%==1 ECHO Y&GOTO :StartSequence IF %answer%==2 ECHO N&GOTO :Done :StartSequence @IF %SQL2012CurrentVersion% EQU %SQLServerDefaultVersion% GOTO :SQLServerNotFound @ECHO. @ECHO !ESC![96mCDVI_ATRIUM SQL Server Current Version %SQLCurrentVersion%!ESC![0m @ECHO. @ECHO !ESC![96mSQL Server 2012 EXPRESS Current Version %SQL2012CurrentVersion%!ESC![0m @ECHO. @IF %SQL2012CurrentVersion% EQU %SQLServerDefaultVersion% GOTO :SQLServerNotFound rem Compare SQL Build numbers @SET DoUpdate=0 IF %SQL2012CurrentVersion% NEQ %SQLServerDefaultVersion% ( IF %_SQLCurrentVersion.Build% LSS %_SQLServer2012Version.Build% ( SET DoUpdate=1 ) ) IF %DoUpdate% EQU 1 GOTO :SQLUpdatePrompt :SQLServerNotFound @ECHO !ESC![96mSQL Server 2012 EXPRESS is not installed!ESC![0m @GOTO :Done :SQLUpdatePrompt @ECHO. @ECHO !ESC![93mUpdate to SQL Server 2012 EXPRESS SP4!ESC![0m @ECHO !ESC![93mUpdate [YES, NO]!ESC![0m CHOICE /T 10 /C YN /D N SET answer=%ERRORLEVEL% IF %answer% EQU 1 ECHO Y&GOTO :SQLUpdate IF %answer% EQU 2 ECHO N&GOTO :Done :SQLUpdate @ECHO. @ECHO Updating to SQL Server 2012 EXPRESS SP4 "..\SQL Express 2012 SP4\SQLServer2012SP4-KB4018073-x64-ENU.exe" /INSTANCENAME=CDVI_ATRIUM @ECHO. @ECHO !ESC![92mA PC reboot may be necessary!ESC![0m @ECHO. @IF ERRORLEVEL 1 GOTO :InstallError @GOTO :Done :InstallError @ECHO. @ECHO !ESC![91mUpdating SQL Server 2012 EXPRESS SP4 aborted!ESC![0m PAUSE @GOTO :Done :Done @ECHO. @ECHO !ESC![96mDone!ESC![0m PAUSE @GOTO :EOF