Overclock.net banner

[OPEN SOURCE] Automatic Steam Backup/Restore Tool

63799 Views 257 Replies 61 Participants Last post by  LezOU
Hi guys,

This tool has been created to replace the built in Steam backup and restore utility. Generally speaking it will compress games faster and/or smaller (depending on the settings) than the default backup feature in Steam. This tool also tends to be a lot more stable and it doesn't break the file into segments unlike the utility built into steam.

Main Features:
  • Includes a command line interface so you can setup scheduled backups.
  • After the initial Backup you have the ability to only backup games that have been updated since the previous update.
  • Choose what games to backup and restore.
  • Choose to restore to an alternative steam library.*
  • Automatically installs games after restore.*
  • Fully multithreaded and optimized for up to 8 core CPUs.
  • Choose the compression level and how many thread to use.
  • Will only use "spare" CPU time.
  • Can automatically find steam folder.
  • Checks online for new updates.
  • High compression ratio due to 7z's excellent LZMA and LZMA2 compression algorithms.
* If the game uses steams new cache format and this cache has the correct information available.

Download Here:
Steam Backup Tool
Source

Change List

This program requires .NET Framework 4.0.

Screen Shots:
Preview of version 1.6.1.1
1 - 20 of 258 Posts

· Premium Member
Joined
·
6,080 Posts
This is awesome, +1
 

· Registered
Joined
·
1,443 Posts
Discussion Starter · #4 ·
Quote:
Originally Posted by Stealth2o;12788668
This looks good. Thanks! +
Quote:
Originally Posted by Outcasst;12788675
This is awesome, +1
Thanks, I was surprised that i couldn't find anything that does this in the whole interwebs.

(implying the the internet is something you go into)
 

· Premium Member
Joined
·
2,645 Posts
Code:

Code:
@echo off

setlocal

REM Location of 7z.exe (Must be command line version)
:input1
echo Where is the location of the 7z.exe file? (Command Line version)
set exe=
set /P exe=Type input: %=%
if "%exe%"=="" goto input1

REM Location of Steam folder
:input2
echo Where is the location of the steam install? Leave trailing backslash! (No \ at end) (Full directory - E.G. C:\Program Files(x86)\steam)
set root=
set /P root=Type input: %=%
if "%root%"=="" goto input2

REM Location of destination folder
:input3
echo Where do you want it to be backed up to? Leave trailing backslash! (No \ at end) (Full directory - E.G. E:\steam_backup, directory must

exist already!)
set dest=
set /P dest=Type input: %=%
if "%dest%"=="" goto input3

echo location of Steam folder: %root%
echo Destination of backup files: %dest%

echo. 
echo Starting to backup 'steamapps' folder (Excluding common folder).
"%exe%" a -t7z "%dest%\steamapps.7z" "%root%\steamapps\*" -mx9 -xr!common > NUL
if exist "%dest%\steamapps.7z" echo '%dest%\steamapps.7z' has been backed up.

echo. 
echo Starting to backup games in 'common' folder (individually).
for /F "tokens=* usebackq" %%G in (`dir "%root%\steamapps\common" /A:D /B`) do (
echo. 
echo Starting to backup '%%G'.
"%exe%" a -t7z "%dest%\common\%%G.7z" "%root%\steamapps\common\%%G" -mx9 > NUL
if exist "%dest%\%%G.7z" echo '%%G' has been backed up.
)

echo. 
echo Finished backing up steamapps folder.

endlocal
pause
Made it take user input in .bat. No need for editing of file, might make a GUI if you want
smile.gif
 

· Premium Member
Joined
·
2,645 Posts
Code:

Code:
@echo off

setlocal

REM Location of 7z.exe (Must be command line version)
:input1
echo Where is the location of the 7z.exe file? (Command Line version)
set exe=
set /P exe=Type input: %=%
if "%exe%"=="" goto input1

REM Location of Steam folder
:input2
echo Where is the location of the steam install? Leave trailing backslash! (No \ at end) (Full directory - E.G. C:\Program Files(x86)\steam)
set root=
set /P root=Type input: %=%
if "%root%"=="" goto input2

REM Location of destination folder
:input3
echo Where do you want it to be backed up to? Leave trailing backslash! (No \ at end) (Full directory - E.G. E:\steam_backup, directory must

exist already!)
set dest=
set /P dest=Type input: %=%
if "%dest%"=="" goto input3

echo location of Steam folder: %root%
echo Destination of backup files: %dest%

REM Choose backup or restore
:input4
echo Backup or Restore?
echo b/r - type one!
set type
set /P type=Type input: %=%
if "%type%"=="" goto input3
if "%type%"=="b" goto backup
if "%type%"=="r" goto restore

:restore
echo. 
echo Starting to restore 'steamapps' folder.
"%exe%" x "%root%\steamapps.7z" -o"%dest%\steamapps" > NUL
echo '%dest%\steamapps' has been restored.

echo. 
echo Starting to restore games in 'common' folder.
for /F "tokens=* usebackq" %%G in (`dir "%root%\common" /B`) do (
echo. 
echo Starting to restore '%%G'.
"%exe%" x "%root%\common\%%G" -o"%dest%\steamapps\common" -ax!steamapps.7z > NUL
echo '%%G' has been restored.
)

echo. 
echo Finished restoring steamapps folder.
goto :eof

:backup
echo. 
echo Starting to backup 'steamapps' folder (Excluding common folder).
"%exe%" a -t7z "%dest%\steamapps.7z" "%root%\steamapps\*" -mx9 -xr!common > NUL
if exist "%dest%\steamapps.7z" echo '%dest%\steamapps.7z' has been backed up.

echo. 
echo Starting to backup games in 'common' folder (individually).
for /F "tokens=* usebackq" %%G in (`dir "%root%\steamapps\common" /A:D /B`) do (
echo. 
echo Starting to backup '%%G'.
"%exe%" a -t7z "%dest%\common\%%G.7z" "%root%\steamapps\common\%%G" -mx9 > NUL
if exist "%dest%\%%G.7z" echo '%%G' has been backed up.
)

echo. 
echo Finished backing up steamapps folder.
goto :eof

:eof
endlocal
pause
Joined both backup and restore together
tongue.gif

Edit: Not working fully. 1 Min
 

· Premium Member
Joined
·
2,645 Posts
Fixed:

Code:
Code:
@echo off

setlocal

REM Location of 7z.exe (Must be command line version)
:input1
echo Where is the location of the 7z.exe file? (Command Line version)
set exe=
set /P exe=Type input: %=%
if "%exe%"=="" goto input1

REM Location of Steam folder
:input2
echo Where is the location of the steam install? Leave trailing backslash! (No \\ at end) (Full directory - E.G. C:\\Program Files(x86)\\steam)
set root=
set /P root=Type input: %=%
if "%root%"=="" goto input2

REM Location of destination folder
:input3
echo Where do you want it to be backed up to? Leave trailing backslash! (No \\ at end) (Full directory - E.G. E:\\steam_backup, directory must

exist already!)
set dest=
set /P dest=Type input: %=%
if "%dest%"=="" goto input3

echo location of Steam folder: %root%
echo Destination of backup files: %dest%

REM Choose backup or restore
:input4
echo Backup or Restore?
echo b/r - type one!
set type
set /P type=Type input: %=%
if "%type%"=="" goto input3
if "%type%"=="b" goto backup
if "%type%"=="r" goto restore

:restore
echo. 
echo Starting to restore 'steamapps' folder.
"%exe%" x "%dest%\\steamapps.7z" -o"%root%\\steamapps" > NUL
echo '%dest%\\steamapps' has been restored.

echo. 
echo Starting to restore games in 'common' folder.
for /F "tokens=* usebackq" %%G in (`dir "%root%\\common" /B`) do (
echo. 
echo Starting to restore '%%G'.
"%exe%" x "%dest%\\common\\%%G" -o"%root%\\steamapps\\common" -ax!steamapps.7z > NUL
echo '%%G' has been restored.
)

echo. 
echo Finished restoring steamapps folder.
pause
goto :eof

:backup
echo. 
echo Starting to backup 'steamapps' folder (Excluding common folder).
"%exe%" a -t7z "%dest%\\steamapps.7z" "%root%\\steamapps\\*" -mx9 -xr!common > NUL
if exist "%dest%\\steamapps.7z" echo '%dest%\\steamapps.7z' has been backed up.

echo. 
echo Starting to backup games in 'common' folder (individually).
for /F "tokens=* usebackq" %%G in (`dir "%root%\\steamapps\\common" /A:D /B`) do (
echo. 
echo Starting to backup '%%G'.
"%exe%" a -t7z "%dest%\\common\\%%G.7z" "%root%\\steamapps\\common\\%%G" -mx9 > NUL
if exist "%dest%\\%%G.7z" echo '%%G' has been backed up.
)

echo. 
echo Finished backing up steamapps folder.
pause
goto :eof

:eof
endlocal
pause
Had to flip %dest% and %root%
That worked for me, just need some other to try it. I will work on the GUI tomorrow. .Net 4 and C# sound ok?
G2G now, work on it tomorrow.
 

· Registered
Joined
·
1,033 Posts

· Premium Member
Joined
·
23,733 Posts
you're awesome.

i could have used this yesterday if i'd seen it since i reformatted.

thank you so much
+
 

· Premium Member
Joined
·
2,645 Posts

Got quite a bit of work done today, its multi-threaded
At the moment, it backs up the steamapps folder. Hopefully I can finish it tomorrow.
 

· Premium Member
Joined
·
22,581 Posts
Dude that looks sweet...
 

· Registered
Joined
·
1,443 Posts
Discussion Starter · #20 ·
Holey Moley!

May i ask in what way is it multithreaded? (it backs up two archives at a time?)

Also does anybody know what file does steam uses to store information about whether or not certain game are installed? it would be handy to back that up to, I hate having to double click to 'download' every game.
 
1 - 20 of 258 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top