Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- ::Install Any TModLoader Version Via Batch ::
- ::Created by RU$$ [http://russdev.mooo.com/] ::
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- @ECHO OFF
- @CD %TEMP%
- @setlocal enabledelayedexpansion
- @mode con:cols=120 lines=3000
- call :Config
- set "LoadMsg=Loading Scripts..."
- call :Progress
- goto GetScripts
- :Config
- set "Counter=-5"
- set "CountN=5"
- set "Schalter=2"
- set "Width=0"
- set "LoadMsg="
- goto :EOF
- :GetScripts
- :: Get HTML Script
- ::
- ::::::::::::::::::::::
- powershell -c "Invoke-RestMethod -Uri "https://forums.terraria.org/index.php?threads/1-3-tmodloader-a-modding-api.23726/" -OutFile output.txt"
- call :Progress
- :: Get Current Version
- ::
- :::::::::::::::::::::: Remove Everything Before -- Steam/GoG:
- for /f "delims=:" %%N in ('findstr /n Steam/GoG: output.txt') do if not defined N set /a N=%%N-1
- more +%N% "output.txt" >"1.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything After First -- <br />
- powershell -executionpolicy bypass -command "(Get-Content 1.txt -Raw) -replace '(?s)<br.*?>.+' | Set-Content 2.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything From Each Line After -- target
- powershell -executionpolicy bypass -command "(Get-Content 2.txt -Raw) -replace 'target.*' | Set-Content 3.txt"
- call :Progress
- :::::::::::::::::::::: Replace " <a href=" To " "
- powershell -executionpolicy bypass -command "(Get-Content 3.txt -Raw) -replace ' \<a href=', ' ' | Set-Content currentbuild.txt"
- call :Progress
- :: Remove Temp Files
- if exist "1.txt" (del 1.txt)
- if exist "2.txt" (del 2.txt)
- if exist "3.txt" (del 3.txt)
- call :Progress
- :: Get Older Versions
- ::
- :::::::::::::::::::::: Remove Everything Before -- bbCodeBlock-content">v
- for /f "delims=:" %%M in ('findstr /n bbCodeBlock-content\^"\^>v output.txt') do if not defined M set /a M=%%M-1
- more +%M% "output.txt" >"1.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything After First -- </div>
- powershell -executionpolicy bypass -command "(Get-Content 1.txt -Raw) -replace '(?s)</div>.+' | Set-Content 2.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything After Inbetween <div>
- powershell -executionpolicy bypass -command "(Get-Content 2.txt -Raw) -replace '\<div.*?\>' | Set-Content 3.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything From Each Line After -- target
- powershell -executionpolicy bypass -command "(Get-Content 3.txt -Raw) -replace 'target.*' | Set-Content 4.txt"
- call :Progress
- :::::::::::::::::::::: Replace " <a href=" To " "
- powershell -executionpolicy bypass -command "(Get-Content 4.txt -Raw) -replace ' \<a href=', ' ' | Set-Content 5.txt"
- call :Progress
- :::::::::::::::::::::: Replace "<br />" To ""
- powershell -executionpolicy bypass -command "(Get-Content 5.txt -Raw) -replace '\<br.*?\>', '' | Set-Content 6.txt"
- call :Progress
- :::::::::::::::::::::: Remove Everything After -- <a
- powershell -executionpolicy bypass -command "(Get-Content 6.txt -Raw) -replace '\<a.*?5""' | Set-Content 7.txt"
- call :Progress
- :::::::::::::::::::::: Remove Empty Lines
- powershell -executionpolicy bypass -command "(Get-Content 7.txt -Raw) -replace ('(?m)^\s*','').trim() | Set-Content oldversions.txt"
- call :Progress
- :::::::::::::::::::::: Combine Text Files
- copy /b "currentbuild.txt"+"oldversions.txt" TLoadVersionsTEMP1.txt >nul
- call :Progress
- :::::::::::::::::::::: Remove Empty Lines In Text File
- powershell -executionpolicy bypass -command "(Get-Content TLoadVersionsTEMP1.txt -Raw) -replace ('(?m)^\s*','').trim() | Set-Content TLoadVersionsTEMP2.txt"
- call :Progress
- :::::::::::::::::::::: Replace "<br />" To ""
- powershell -executionpolicy bypass -command "(Get-Content TLoadVersionsTEMP2.txt -Raw) -replace 'Steam.*?GoG', 'Latest-Version' | Set-Content TLoadVersions.txt"
- call :Progress
- :: Remove Temp Files
- ::
- ::::::::::::::::::::::
- if exist "1.txt" (del 1.txt)
- if exist "2.txt" (del 2.txt)
- if exist "3.txt" (del 3.txt)
- if exist "4.txt" (del 4.txt)
- if exist "5.txt" (del 5.txt)
- if exist "6.txt" (del 6.txt)
- if exist "7.txt" (del 7.txt)
- call :Progress
- if exist "output.txt" (del output.txt)
- if exist "TLoadVersionsTEMP1.txt" (del TLoadVersionsTEMP1.txt)
- if exist "TLoadVersionsTEMP2.txt" (del TLoadVersionsTEMP2.txt)
- if exist "oldversions.txt" (del oldversions.txt)
- if exist "currentbuild.txt" (del currentbuild.txt)
- call :Progress
- call :Config
- goto MenuList
- :MenuList
- cls
- Set "INPUT="
- Set "i=0"
- Echo Select A Tmodloader Version:
- Echo(
- Rem | Generate the list of items from textfile
- FOR /F "tokens=1,* delims=: " %%A IN (TLoadVersions.txt) DO (
- Rem | Set Strings
- Set /A "i+=1"
- Rem | Save Variable As String
- Set "Num!i!=%%B"
- Rem | Print String To Console
- Echo [!i!] - %%A
- )
- Echo [0] - Exit
- Echo(
- Set /P INPUT=Set Your Choice And Press Enter:
- IF /I "!INPUT!"=="0" GOTO :EOF
- Rem | Check For Valid Listing
- IF /I "!Num%INPUT%!"=="" (
- Rem | Number Not Listed!
- cls
- Echo ERROR: Number Was Not On The List.
- Echo(
- Pause
- goto MenuList
- )
- cls
- Rem | Remove Temp Files
- if exist "TLoadVersions.txt" (del TLoadVersions.txt)
- Rem | Set String Based On Number
- Set "INPUT=!Num%INPUT%!"
- Rem | Remove Spaces From End Of String
- for /l %%A in (1,1,100) do (if "!INPUT:~-1!"==" " set INPUT=!INPUT:~0,-1!)
- Set "net_int=!INPUT!"
- goto InstallMe
- :InstallMe
- set "LoadMsg=Installing..."
- set "Counter=-25"
- set "CountN=25"
- call :Progress
- :::::::::::::::::::::: Download File
- powershell -c "Invoke-RestMethod -Uri !INPUT! -OutFile x.zip"
- call :Progress
- :::::::::::::::::::::: Extract File
- powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('x.zip', 'DownloadedFiles'); }"
- call :Progress
- :::::::::::::::::::::: Rename Needed Files
- ren "%temp%\DownloadedFiles\Terraria.exe" "TerrariaModded.exe" >nul
- call :Progress
- :::::::::::::::::::::: Move Files
- move /Y "%temp%\DownloadedFiles\*.*" "C:\Program Files (x86)\Steam\steamapps\common\Terraria" >nul
- call :Progress
- :: Remove Temp Files
- ::
- ::::::::::::::::::::::
- if exist "x.zip" (del x.zip)
- if exist "%temp%\DownloadedFiles" (rmdir /s /q "%temp%\DownloadedFiles")
- goto Completed
- :Completed
- cls
- Echo SUCCESS: The ModLoader Has Finished Installing.
- Echo(
- Pause
- goto :EOF
- :: Progress Bar Function
- ::
- ::::::::::::::::::::::
- :Progress
- set /a Counter=%Counter% + !CountN!
- set /a Display=%Counter% / 2
- FOR /L %%A IN (1,1,%Display%) DO (
- set Display=!Display!²
- )
- cls
- if %Counter% gtr 100 (Set /a "Counter=100")
- echo !LoadMsg! %Counter%%%
- echo ²!Display:~2,47!
- echo(
- goto :EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement