Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- :: _________________________________
- :: | AdminToolbox Auto Updater v1.10 |
- :: | B y |
- :: | Tam / @Tam#1111 |
- :: | Last updated 31.05.2019 |
- :: |_________________________________|
- set discNick=@Tam#1111
- if "%~1"=="" (
- prompt $_CRASHED - Unhandled exception ^(%errorlevel%^). Send above info to Discord user %discNick%.
- start /w /b "" "%~f0" _
- ver
- exit
- )
- :main
- setlocal enabledelayedexpansion
- set v=1.10
- title AdminToolbox Updater v!v!
- set "scp_appdata=%appdata%\SCP Secret Laboratory"
- for /f "usebackq tokens=1,* delims== eol=; skip=250" %%A in ("%~f0") do (
- if "%%A"=="TargetDir" (
- if "%%B"=="?DEFAULT" (
- set "%%A=%~dp0"
- ) else (
- if not exist "%%B" (
- echo CONFIG ERROR: The value in 'TargetDir' points to an invalid location.
- echo Details: %%B
- echo Verify the path and retry.
- pause > nul
- exit
- ) else (
- set "%%A=%%B"
- )
- )
- ) else (
- set "%%A=%%B"
- )
- )
- if not defined TargetDir (
- echo TargetDir undefined, check config.
- exit /b
- )
- cd /d "!TargetDir!"
- cls
- color 0A
- echo.
- echo *** AdminToolbox Auto Updater v!v! ***
- echo By
- echo Tam / !discNick!
- timeout /t 2 > nul
- cls & color 0F
- echo.
- if exist "SCPSL.exe" (
- if not exist "SCPSL_Data\Managed\Smod2.dll" (
- echo Couldn't detect SMod.
- echo Make sure that SMod is correctly installed.
- pause > nul
- endlocal
- exit
- )
- ) else (
- echo Error
- echo.
- echo "I have no memory of this place..."
- echo - Gandalf, 2069
- echo ^('!TargetDir!' is probably not the correct location^)
- echo.
- echo %~n0 is not running from the SCP:SL server root.
- echo Place in the correct location or change the config and retry.
- pause > nul
- endlocal
- exit
- )
- echo Checking download capabilities...
- if not exist "!SYSTEMROOT!\System32\curl.exe" (
- echo cURL not detected. Attempting to select BITS + PowerShell...
- for /f "skip=3 tokens=2 delims=:" %%A in ('powershell -command "get-host"') do (
- set /a n=!n!+1
- set c=%%A
- if !n!==1 set PSversion=!c!
- )
- set PSversion=!PSversion: =!
- for /f "tokens=1 delims=." %%A in ("!PSversion!") do (
- if %%A LSS 3 (
- echo Error. The required PowerShell cmdlet is unavailable.
- echo Please install cURL or PowerShell 3.0 or higher.
- pause > nul
- endlocal
- exit
- )
- )
- echo Success.
- set useCurl=0
- set dlMethod=BITS
- set dlMethod2=PowerShell
- ) else (
- echo cURL detected and selected.
- set useCurl=1
- set dlMethod=cURL
- set dlMethod2=cURL
- )
- echo.
- echo Downloading version data using !dlMethod!...
- if exist "!scp_appdata!\n_at_version.md" (
- del /q "!scp_appdata!\n_at_version.md" > nul
- )
- if !useCurl!==1 (
- curl -s --tlsv1.2 --connect-timeout 10 --output "!scp_appdata!\n_at_version.md" "https://raw.githubusercontent.com/Rnen/AdminToolbox/master/version.md"
- if not exist "!scp_appdata!\n_at_version.md" (
- echo Download failed.
- echo.
- echo Press any key to retry.
- pause > nul
- endlocal
- goto :main
- )
- ) else (
- bitsadmin /create /download "at_version" > nul
- bitsadmin /setnoprogresstimeout "at_version" 10 > nul
- bitsadmin /transfer "at_version" "https://raw.githubusercontent.com/Rnen/AdminToolbox/master/version.md" "!scp_appdata!\n_at_version.md" > nul
- if !errorlevel!==0 (
- bitsadmin /complete "at_version" > nul
- ) else (
- echo Download failed.
- echo [BITS returned ERRORLEVEL !errorlevel!]
- echo.
- echo Press any key to retry.
- pause > nul
- bitsadmin /complete "at_version" > nul
- endlocal
- goto :main
- )
- if not exist "!scp_appdata!\n_at_version.md" (
- echo Download failed.
- echo [BITS completed with no file output]
- echo.
- echo Press any key to retry.
- pause > nul
- endlocal
- goto :main
- )
- )
- echo Done.
- echo.
- echo Parsing version data...
- for /f "usebackq tokens=2 delims==" %%A in ("!scp_appdata!\n_at_version.md") do (
- for /f "tokens=1-3 delims=." %%B in ("%%A") do (
- set catch=0
- if "%%B"=="" set catch=1
- if "%%C"=="" set catch=1
- if "%%D"=="" set catch=1
- if !catch!==1 (
- echo Error while parsing GitHub version data.
- echo [n_at_version.md data is invalid.]
- echo.
- echo Press any key to exit.
- pause > nul
- endlocal
- exit
- )
- )
- set "at_version=%%A"
- set _at_version=!at_version:.=!
- )
- if not exist "sm_plugins\AdminToolbox.dll" (
- set _local_version=-9999
- set "local_version=Not installed"
- goto :dataParseSkip
- )
- if exist "!scp_appdata!\at_version.md" (
- for /f "usebackq tokens=2 delims==" %%A in ("!scp_appdata!\at_version.md") do (
- set "local_version=%%A"
- set _local_version=!local_version:.=!
- )
- ) else (
- echo No local version data found.
- echo.
- echo Press any key to force update.
- pause > nul
- goto :update
- )
- echo Done.
- :dataParseSkip
- echo.
- if !_local_version! LSS !_at_version! (
- echo.
- echo A newer version of AdminToolbox is available.
- echo.
- echo Your version: !local_version!
- echo New version: !at_version!
- echo.
- echo Press any key to download.
- pause > nul
- goto :update
- ) else (
- echo.
- echo Your AdminToolbox is up to date. ^(Local: v!local_version! Online: v!at_version!^)
- echo.
- echo Press any key to force update.
- pause > nul
- goto :update
- )
- :update
- cls
- echo Preparing download...
- tasklist /fi "IMAGENAME eq SCPSL.exe" | find /i "SCPSL.exe" > nul
- if !errorlevel!==0 (
- echo.
- echo Cannot download while SCP:SL is running.
- echo Exit SCP:SL or shut down SL servers and retry.
- echo Press any key to retry.
- pause > nul
- goto :update
- )
- ping -n 1 github.com > nul
- if not !errorlevel!==0 (
- echo Unable to connect.
- echo [PING returned ERRORLEVEL !errorlevel!]
- echo.
- echo Press any key to retry.
- pause > nul
- goto :update
- )
- set "link=https://github.com/Rnen/AdminToolbox/releases/download/!at_version!/AdminToolbox.dll"
- echo Downloading AdminToolbox using !dlMethod2!...
- if !useCurl!==1 (
- curl -s --tlsv1.2 --connect-timeout 10 --output "sm_plugins\AdminToolbox.dll" "!link!"
- ) else (
- powershell -command "& { $tls12 = [Enum]::ToObject([Net.SecurityProtocolType], 3072); [Net.ServicePointManager]::SecurityProtocol = $tls12; (New-Object Net.WebClient).DownloadFile('!link!', 'sm_plugins\AdminToolbox.dll') }"
- )
- if exist "sm_plugins\AdminToolbox.dll" (
- echo.at_version=!at_version!>"!scp_appdata!\at_version.md"
- echo Done.
- echo Now running v!at_version!
- ) else (
- echo Download failed.
- echo.
- echo Press any key to retry.
- pause > nul
- goto :update
- )
- echo.
- echo.
- echo Press any key to exit
- pause > nul
- endlocal
- exit
- ;CONFIGURATION
- ;------------------------------------------------------------------------
- ;; TargetDir - Specifies the server root directory, e.g. C:\SCPSL_server\
- ;; You may leave the setting at "?DEFAULT" if the script is already placed in the server root directory
- TargetDir=C:\SCPSL\
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement