Skip to content

Instantly share code, notes, and snippets.

@dannyvoid
Last active September 7, 2023 23:41
Show Gist options
  • Save dannyvoid/db39d934debf76f179fe10757c5b20e9 to your computer and use it in GitHub Desktop.
Save dannyvoid/db39d934debf76f179fe10757c5b20e9 to your computer and use it in GitHub Desktop.
auto backup starfield saves
@echo off
setlocal enabledelayedexpansion
:: Configuration variables
set "game_save_folder=C:\Users\perso\OneDrive\Documents\My Games\Starfield\Saves"
set "backup_folder=E:\.saves"
set "wait_minutes=10"
set "task_name=BackupStarfield"
goto start
:start
net session >nul
if %errorlevel% neq 0 goto elevate >nul
goto :StartSaveBackups
:elevate
cd /d %~dp0
mshta "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" >nul
exit
:StartSaveBackups
cls
echo Backing up Starfield save files
echo.
if not exist "%game_save_folder%" (
echo The game save folder "%game_save_folder%" does not exist.
goto :eof
)
if not exist "%backup_folder%" (
mkdir "%backup_folder%"
echo Created backup folder: "%backup_folder%"
)
set "backup_required=false"
for %%f in ("%game_save_folder%\*.*") do (
set "source_file=%%~ff"
set "destination_file=%backup_folder%\%%~nxf"
if not exist "!destination_file!" (
copy "%%f" "!destination_file!"
echo Backing up: "%%f"
set "backup_required=true"
) else (
echo File already backed up: "%%f"
)
)
if "%backup_required%"=="true" (
echo.
echo Backup completed.
) else (
echo.
echo All files already backed up.
)
goto CheckAndCreateTask
:CheckAndCreateTask
schtasks /query /tn "BackupStarfield" > nul 2>&1
if %errorlevel% neq 0 (
schtasks /create /sc minute /mo 10 /tn "BackupStarfield" /tr "cmd /c %~dp0%~nx0" /ru "SYSTEM"
)
goto end
:end
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment