Skip to content

Instantly share code, notes, and snippets.

@patyhank
Created June 1, 2020 05:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patyhank/30a10d0cdaf2447dd663578cd49dfdf8 to your computer and use it in GitHub Desktop.
Save patyhank/30a10d0cdaf2447dd663578cd49dfdf8 to your computer and use it in GitHub Desktop.
Minecraft Dungeons Auto Backup Script

Auto Backup Minecraft Dungeons Character File(Launcher Only)

Author: HrJasn#9456

How to use:

Step 1:

Download the AutoBackUpDungeons.bat

Step 2:

Move File(AutoBackUpDungeons.bat) into Your Dungeons Path

Step 3:

Run the script as administrator

Step 4:

Let's Start Play Minecraft Dungeons

Minecraft Dungeons 角色存檔自動備份(限啟動器版)

作者: HrJasn#9456

如何使用此腳本:

步驟1:

下載 AutoBackUpDungeons.bat

步驟2:

把腳本移動到遊戲目錄

步驟3:

將腳本以系統管理員身分執行

步驟4:

開始遊戲

@echo off
@echo off
setlocal ENABLEDELAYEDEXPANSION
cd /d "%~dp0"
set target=
set Operate=
set cuDateNum=%date%
set logFolderName=%~n0_Log
set commandResault=
set /a keepTopTotal=3
set "cuDateNum=!cuDateNum:/=-!"
set "cuDateNum=!cuDateNum::=-!"
set "cuDateNum=!cuDateNum:.=-!"
set "cuDateNum=!cuDateNum: =-!"
echo Set objArgs = WScript.Arguments > "%~dpn0.vbs"
echo Set FS = CreateObject("Scripting.FileSystemObject") >> "%~dpn0.vbs"
echo Function LPad (str, pad, length) >> "%~dpn0.vbs"
echo LPad = String(length - Len(str), pad) ^& str >> "%~dpn0.vbs"
echo End Function >> "%~dpn0.vbs"
echo InputFolder = FS.GetAbsolutePathName(objArgs(0)) >> "%~dpn0.vbs"
echo ZipFile = InputFolder ^& "_" ^& Year(Date) ^& LPad(Month(Date), "0", 2) ^& LPad(Day(Date), "0", 2) ^& LPad(Hour(Time), "0", 2) ^& LPad(Minute(Time), "0", 2) ^& LPad(Second(Time), "0", 2) ^& ".zip" >> "%~dpn0.vbs"
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> "%~dpn0.vbs"
echo Set objShell = CreateObject("Shell.Application") >> "%~dpn0.vbs"
echo objShell.NameSpace(ZipFile).CopyHere(InputFolder) >> "%~dpn0.vbs"
echo wScript.Sleep 2000 >> "%~dpn0.vbs"
if not exist "!logFolderName!" md "!logFolderName!" > nul 2>&1
if not exist "!logFolderName!\!logFolderName!-!cuDateNum!.csv" echo Date,Time,Operate,Target,Create Time> "!logFolderName!\!logFolderName!-!cuDateNum!.csv" 2>&1
schtasks /Query /V /FO List /TN "%~n0" >nul 2>&1
if not "!ERRORLEVEL!"=="0" call :addToTask
for /f "delims=" %%a in ('dir /A:D /B') do (
set Operate=Done
set target=%%a
if "!target!"=="!logFolderName!" (
call :excludingTarget
) else if "!target!"=="Saved" (
call :excludingTarget
) else (
tasklist /FI "IMAGENAME eq Dungeons-Win64-Shipping.exe" | find "Dungeons-Win64-Shipping" > nul && (
if "!Operate!"=="Done" (
call :doingTarget "!target!"
) else (
echo !date!,!time::=-!,!Operate!,!target!
echo !date!,!time::=-!,!Operate!,!target!>> "!logFolderName!\!logFolderName!-!cuDateNum!.csv" 2>&1
)
)
)
)
for /f "delims=" %%a in ('dir /A:-D /O:-D /B *.zip') do (
set Operate=Done
set target=%%a
echo "!target!" | find ".zip" > nul && (
if /I !keepTopTotal! GEQ 1 (
call :excludingTarget
set /a keepTopTotal-=1
) else (
call :deleteTarget "!target!"
)
)
)
goto :batchexit
:excludingTarget
set Operate=Exclude
goto :eof
:doingTarget
set commandResault=Complete
for /f "delims=" %%a in ('"""%SystemRoot%\System32\wscript.exe"" ""%~dpn0.vbs"" %1" 2^>^&1') do if not "!ERRORLEVEL!"=="0" set commandResault=%%a
echo !date!,!time::=-!,BackUp,Resault^: %1 ^-^> !commandResault:~0,-1!>> "!logFolderName!\!logFolderName!-!cuDateNum!.csv"
goto :eof
:deleteTarget
set commandResault=Complete
for /f "delims=" %%a in ('del /F %1 2^>^&1') do if not "!ERRORLEVEL!"=="0" set commandResault=%%a
echo !date!,!time::=-!,Delete,Resault^: %1 ^-^> !commandResault:~0,-1!>> "!logFolderName!\!logFolderName!-!cuDateNum!.csv"
goto :eof
:addToTask
net start "Task Scheduler" >nul 2>&1
net start "Schedule" >nul 2>&1
set commandResault=
for /f "delims=" %%a in ('schtasks /Create /F /RU "NT AUTHORITY\SYSTEM" /TN "%~n0" /TR "%~dpnx0" /SC MINUTE 2^>^&1') do set commandResault=%%a
echo !date!,!time::=-!,Create schtasks,Resault: !commandResault:~0,-1! ,"!date! !time!">> "!logFolderName!\!logFolderName!-!cuDateNum!.csv"
goto :eof
endlocal
:batchexit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment