@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 SQL2008R2CurrentVersion=0 @FOR /F "tokens=2,* skip=2" %%L IN ( 'reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.CDVI_ATRIUM\MSSQLServer\CurrentVersion" /v CurrentVersion' ) DO SET "SQL2008R2CurrentVersion=%%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 SQL2019CurrentVersion=0 @FOR /F "tokens=2,* skip=2" %%L IN ( 'reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.CDVI_ATRIUM\MSSQLServer\CurrentVersion" /v CurrentVersion' ) DO SET "SQL2019CurrentVersion=%%M" @SET SQLServerDefaultVersion=0 @ECHO. @ECHO !ESC![96mCDVI_ATRIUM SQL Server Current Version %SQLCurrentVersion%!ESC![0m @ECHO. @ECHO !ESC![96mSQL Server 2008 R2 EXPRESS Current Version %SQL2008R2CurrentVersion%!ESC![0m @ECHO !ESC![96mSQL Server 2012 EXPRESS Current Version %SQL2012CurrentVersion%!ESC![0m @ECHO !ESC![96mSQL Server 2019 EXPRESS Current Version %SQL2019CurrentVersion%!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 %SQLCurrentVersion% EQU %SQLServerDefaultVersion% GOTO :SQLServerNotFound @IF %SQL2019CurrentVersion% NEQ %SQLServerDefaultVersion% GOTO :Uninstall2019Prompt @IF %SQL2012CurrentVersion% NEQ %SQLServerDefaultVersion% GOTO :Uninstall2012Prompt @IF %SQL2008R2CurrentVersion% NEQ %SQLServerDefaultVersion% GOTO :Uninstall2008R2Prompt @GOTO :Done :SQLServerNotFound @ECHO !ESC![96mSQL Server EXPRESS not found!ESC![0m @GOTO :Done :Uninstall2019Prompt @ECHO. @ECHO !ESC![93mSQL Server 2019 EXPRESS Version %SQLCurrentVersion% is installed!ESC![0m @ECHO !ESC![93mUninstall [YES, NO]!ESC![0m CHOICE /T 10 /C YN /D N SET answer=%ERRORLEVEL% IF %answer%==1 ECHO Y&GOTO :Uninstall2019 IF %answer%==2 ECHO N&GOTO :Done :Uninstall2019 @ECHO. @ECHO Uninstalling SQL Server 2019 EXPRESS "..\SQL Express 2019\setup.exe" /ACTION=Uninstall /FEATURES=SQLEngine /INSTANCENAME=CDVI_ATRIUM @IF ERRORLEVEL 1 GOTO :UninstallError @GOTO :Done :Uninstall2012Prompt @ECHO. @ECHO !ESC![93mSQL Server 2012 EXPRESS Version %SQLCurrentVersion% is installed!ESC![0m @ECHO !ESC![93mUninstall [YES, NO]!ESC![0m CHOICE /T 10 /C YN /D N SET answer=%ERRORLEVEL% IF %answer%==1 ECHO Y&GOTO :Uninstall2012 IF %answer%==2 ECHO N&GOTO :Done :Uninstall2012 @ECHO. @ECHO Uninstalling SQL Server 2012 EXPRESS "..\SQL Express 2012\SQLEXPR_x64_ENU.exe" /ACTION=Uninstall /FEATURES=SQLEngine /INSTANCENAME=CDVI_ATRIUM @IF ERRORLEVEL 1 GOTO :UninstallError @GOTO :Done :Uninstall2008R2Prompt @ECHO. @ECHO !ESC![93mSQL Server 2008 R2 EXPRESS Version %SQLCurrentVersion% is installed!ESC![0m @ECHO !ESC![93mUninstall [YES, NO]!ESC![0m CHOICE /T 10 /C YN /D N SET answer=%ERRORLEVEL% IF %answer%==1 ECHO Y&GOTO :Uninstall2008R2 IF %answer%==2 ECHO N&GOTO :Done :Uninstall2008R2 @ECHO. @ECHO Uninstalling SQL Server 2008 R2 EXPRESS "..\SQL Express 2008\SQLEXPR_x64_ENU.exe" /ACTION=Uninstall /FEATURES=SQLEngine /INSTANCENAME=CDVI_ATRIUM @IF ERRORLEVEL 1 GOTO :UninstallError @GOTO :Done :UninstallError @ECHO. @ECHO !ESC![91mUninstalling SQL Server EXPRESS aborted!ESC![0m PAUSE @GOTO :Done :Done @ECHO. @ECHO !ESC![96mDone!ESC![0m PAUSE @GOTO :EOF