Advertisement
Urik_Kane

GTAV_backup.bat

Dec 18th, 2018
2,331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 4.33 KB | None | 0 0
  1. @echo off
  2. setLocal EnableDelayedExpansion
  3.  
  4. :: ------------------------ SET VARIABLES (don't touch) ----------------------------
  5. set LauncherFolder="%userprofile%\Documents\Rockstar Games\Launcher"
  6.  
  7. :: ------------------------ USER OPTIONS ----------------------------------------------
  8. :: gamefolder will be replaced by actual game folder. BUT, you can put a completely custom path here, like "F:\my backups\gta_backup" , BUT please use " marks if your path has spaces!
  9. set backupfolder=gamefolder\_backup
  10. :: open backup folder in explorer once finished
  11. set open_explorer_window=true
  12. :: ----------------------------------------------------------------------------------------
  13.  
  14. :Start
  15. :GetGameFolder
  16. if exist %LauncherFolder% (
  17. cd /d %LauncherFolder%
  18. for /f tokens^=2^ delims^=^" %%i in ('type launcher.log ^|find "GTA5.exe"') do set "exepath=%%i"
  19. if "!exepath!"=="" ( echo ERROR: COULD NOT DETECT GAMEFOLDER & pause & goto :eof )
  20. set gamepath="!exepath:\GTA5.exe=!"
  21. if exist !gamepath! ( set "gamefolder=!gamepath!" ) else ( echo ERROR: COULD NOT DETECT GAMEFOLDER & pause & goto :eof )
  22. echo Detected Game Folder !gamepath! & echo.
  23. ) else ( echo Warning: CAN'T FIND LAUNCHER FOLDER %LauncherFolder% & pause & goto :eof )
  24.  
  25. :GetVersion
  26. set exepath2=!exepath:\=\\!
  27. for /f "tokens=*" %%V in ( ' wmic datafile where "name='!exepath2!'" get version ' ) do (
  28.  
  29.     for /F "delims=" %%A IN ("%%V") do (
  30.         if not "%%V"=="" (
  31.             if not "%%V"=="Version" set "version=%%V"  
  32.         )
  33.     )
  34. )
  35. set "version=%version: =%"
  36. if '!version!'=='' ( echo ERROR: COULD NOT DETECT VERSION & pause & goto :eof ) else ( echo Game Version: %version% )
  37.  
  38. :GetPlatform
  39. cd /d %LauncherFolder%
  40.     if exist launcher.log (
  41.     for /f "tokens=*" %%i in ('type launcher.log ^|find "Running in Steam mode"') do set "Is_Steam=true"
  42.     ) else (
  43.     echo ERROR: CAN'T FIND %cd%\launcher.log
  44. )
  45.  
  46. :SetFileList
  47. if defined is_steam ( set files_tocopy=GTA5.exe,GTAVLauncher.exe,steam_api64.dll,update\update.rpf ) else ( set files_tocopy=GTA5.exe,GTAVLauncher.exe,update\update.rpf )
  48.  
  49. :SetBackupFolder
  50. set backupfolder=%backupfolder:gamefolder=!gamefolder!%
  51. set backupfolder=%backupfolder:"=%
  52. set backupfolder="%backupfolder%\%version%"
  53. if NOT exist %backupfolder% ( mkdir %backupfolder% || ( CALL :ReportMkDirFailure %backupfolder% & pause & goto :eof ) )
  54. echo Backup Folder %backupfolder% & echo.
  55.  
  56. :IterateFiles
  57. set copycount=0
  58. set failcount=0
  59. for %%F in (%files_tocopy%) do ( if exist %backupfolder%\%%F ( CALL :AlreadyBackedUp %%F ) else ( CALL :CopyFile %%F ) )
  60.  
  61. :Finish
  62. CALL :ReportALL
  63. echo.
  64. pause
  65. if %open_explorer_window%==true explorer %backupfolder%
  66. goto :eof
  67.  
  68. :: --------------------------------------------------------------------------------------------------------------------------
  69.  
  70. :CopyFile
  71. xcopy /Y %gamefolder%\%1 %backupfolder%\%1*
  72. if !errorlevel!==0 ( CALL :LogSuccess %1 ) else ( CALL :LogFailure %1 )
  73. goto :eof
  74.  
  75. :AlreadyBackedUp
  76. echo %1           - already backed up
  77. goto :eof
  78.  
  79. :LogFailure
  80. if "!failedfiles!"=="" ( set "failedfiles=%1" ) else ( set "failedfiles=!failedfiles!, %1" )
  81. set /a "failcount=!failcount!+1"
  82. goto :eof
  83.  
  84. :LogSuccess
  85. if "!copiedfiles!"=="" ( set "copiedfiles=%1" ) else ( set "copiedfiles=!copiedfiles!, %1" )
  86. set /a "copycount=!copycount!+1"
  87. goto :eof
  88.  
  89. :ReportALL
  90. CALL :ReportSuccess
  91. CALL :ReportFailure
  92. goto :eof
  93.  
  94. :ReportMkDirFailure
  95. echo ---------------------------------------------------------------------------------------
  96. echo  ERROR
  97. echo  CAN'T CREATE FOLDER %1
  98. echo  CHECK PERMISSIONS
  99. echo ---------------------------------------------------------------------------------------
  100. goto :eof
  101.  
  102. :ReportFailure
  103. if %failcount% GTR 0 (
  104. if %failcount% GTR 1 (set filesplural=files) else (set filesplural=file)
  105. echo ------------------------------------------------------------------------
  106. echo  FAILED TO COPY %failcount% !filesplural!: !failedfiles!
  107. echo ------------------------------------------------------------------------
  108. )
  109. set failcount=0
  110. set failedfiles=
  111. goto :eof
  112.  
  113. :ReportSuccess
  114. if %copycount% GTR 0 (
  115. if %copycount% GTR 1 (set filesplural=files) else (set filesplural=file)
  116. echo ------------------------------------------------------------------------
  117. echo  %copycount% !filesplural! copied: !copiedfiles!
  118. echo ------------------------------------------------------------------------
  119. )
  120. set copycount=0
  121. set copiedfiles=
  122. goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement