구글 기본적으로 15기가 정도는 무료로 주니까 쓸만할걸로 예상됨.
현재 쓰고 있던 계정이 있는경우, 빈 깡통 계정 만드는 걸 추천
깡통 계정도 15기가 줌. (만드는 방법은 그냥 구글 회원가입하면 댐)
1. Rclone을 이용할거임
- https://rclone.org/downloads/ 여기에서 자신 환경에 맞는 rclone을 다운로드
2. 압축해제 후 적당한 곳에 폴더를 이동시키셈
- 저 같은 경우 C:\rclone 에 위치시킴 반드시 해당 위치를 기억해놓아야함
3. 해당 폴더에서 쉬프트를 누른 후 오른쪽 클릭하면 메뉴창이 뜰텐데, 거기서 커멘드창 띄우셈
- 파워쉘이든 cmd든 아무거나 상관없음
4. 커멘드창이 뜨면
rclone config를 입력함
(base) PS C:\rclone> rclone config
n 누르고 엔터
n/s/q> n
드라이브 이름을 영어로 아무거나 지으셈 본인은 gds_dyson으로 정함
name> gds_dyson
18을 입력해줌
Storage> 18
여기서 분기점인데, 나는 세이브파일이 1기가 이상이라 빠른 속도가 필요하다 싶으면
https://rclone.org/drive/#making-your-own-client-id
Google driveGoogle driverclone.org여기에 툴팁대로 이행 한다음에 순서 따라오셈
(만약 위에 설명대로 프로젝트를 만든 후 api를 발급받은 경우 발급받은 client_id 입력)
1기가 미만의 세이브파일을 가진 늅같은 경우 아무것도 입력하지 않고 엔터
client_id>
(만약 위에 설명대로 프로젝트를 만든 후 api를 발급받은 경우 발급받은 client_secret 입력)
1기가 미만의 세이브파일을 가진 늅같은 경우 아무것도 입력하지 않고 그냥 엔터!
client_secret>
이제부터는 늅이든 고인물이든 다 동일함
1입력 후 엔터
scope> 1
아무것도 적지않고 엔터
service_account_file>
아무것도 적지않고 엔터
y/n>
y누르고 엔터
y/n> y
그러면 위 와 같은 로그인 화면이 나오는데
연결할 계정을 선택하고
허용 누르면 됌
그 이후 그냥 엔터 눌러주면 rclone 설정은 끝나게댐
y/n>
y/e/d>
5. 메모장을 열어주셈 (진짜 윈도우 메모장)
@echo off @chcp 65001 1> NUL 2> NUL setlocal EnableDelayedExpansion ::웬만하면 건들이지 않는걸 추천 set STEAM_SHORTCUT=steam://rungameid/1366540 set DYSON_GAME_EXE=DSPGAME.exe set BASE_DIR=%userprofile%\Documents\Dyson Sphere Program set FILE_LIST=output.txt ::웬만하면 건들이지 않는걸 추천 rem 여기가 바로 수정해야할 부분! set BACKUP_DIR=%userprofile%\Documents\backup\Dyson Sphere Program set RCLONE_PATH=C:\rclone\rclone.exe set DRIVE_DIR=gds_dyson:/게임/Dyson Sphere Program rem 여기가 바로 수정해야할 부분! echo make backup folder echo. mkdir "%BACKUP_DIR%" "%RCLONE_PATH%" mkdir "%DRIVE_DIR%" echo move backup echo. robocopy "%BASE_DIR%" "%BACKUP_DIR%" /E /Z /R:1 /W:1 /NFL /NDL /NP /MT:16 /XO "%RCLONE_PATH%" lsl "%DRIVE_DIR%/Save" > temp.txt for /f "usebackq tokens=*" %%A in ("temp.txt") do ( setlocal enabledelayedexpansion set "file_info=%%A" REM 파일 정보에서 파일 크기, 수정 날짜 및 파일 경로 추출 for /f "tokens=1-3,*" %%B in ("!file_info!") do ( set "file_size=%%B" set "file_mod_date=%%C" set "file_mod_time=%%D" REM 파일 경로에서 첫 번째 공백 이후의 텍스트 추출 set "file_path=%%E" REM 파일인지 폴더인지 확인 if "!file_size!" neq "<dir>" ( REM "대상" 폴더에 파일이 존재하는지 확인 if exist "%BASE_DIR%\Save\!file_path!" ( REM "대상" 폴더의 파일이 더 최신으로 수정된 경우, sync를 수행하지 않음 for %%G in ("%BASE_DIR%\Save\!file_path!") do ( set "dest_file_mod_date=%%~tG" setlocal enabledelayedexpansion if "!dest_file_mod_date!" gtr "!file_mod_date! !file_mod_time!" ( echo. "!dest_file_mod_date!" gtr "!file_mod_date!% %!file_mod_time!" ) else ( echo "%BASE_DIR%\Save\!file_path!"" is modified. so sync. "%RCLONE_PATH%" sync "%DRIVE_DIR%" "%BASE_DIR%" --create-empty-src-dirs --transfers 20 --copy-links --drive-server-side-across-configs=true --progress goto Sync ) endlocal ) ) else ( echo "%DRIVE_DIR%\!file_path!" is not exist. so sync. "%RCLONE_PATH%" sync "%DRIVE_DIR%" "%BASE_DIR%\" --create-empty-src-dirs --transfers 20 --copy-links --drive-server-side-across-configs=true --progress goto Sync ) ) ) endlocal ) :Sync del temp.txt echo RUN GAME! echo. start %STEAM_SHORTCUT% echo IM WATING UNTIL GAME END echo. echo. echo. timeout /t 30 /nobreak >nul for /f "tokens=2" %%a in ('tasklist /nh /fi "imagename eq %DYSON_GAME_EXE%"') do set "PID=%%a" :LOOP tasklist /fi "PID eq %PID%" | find "%PID%" >nul if %errorlevel% equ 0 ( timeout /t 1 /nobreak >nul goto LOOP ) echo DETECTED THE GAME HAS ENDED! echo SYNC DATA TO GDS! echo. "%RCLONE_PATH%" sync "%BASE_DIR%" "%DRIVE_DIR%" --create-empty-src-dirs --transfers 20 --copy-links --drive-server-side-across-configs=true --progress echo DONE! pause exit | cs |
위 코드를 복사한 후에 메모장에 붙여넣기 해주고
본인 설치 환경에 따라
위 세가지 항목을 수정해주어야함
BACKUP_DIR은 만약 구글드라이브에 있는 파일이 구버전 데이터라면 여기에 기존데이터가 저장되어있을거임
현재는 내문서/backup/Dyson Sphere Program 이라는 폴더에 저장되게끔 설정해놨음
RCLON_PATH는 rclone 설치한 폴더에 있는 rclone.exe의 경로를 말함. 만약 나처럼 똑같이 c:\rclone 폴더에 위치시켜놨다면 안 건들여도 됌
DRIVE_DIR은 자신의 구글 드라이브 폴더 어디에 세이브 파일 저장할지 정하는거임. rclone config를 통해 만든 name을 앞에 위치시키고 그 이후 경로를 적는거.
그 이후에 자신이 원하는 곳에 텍스트 파일을 저장해주면 됌 (인코딩 방식은 UTF-8로 지정해야함)
근데 반드시 뒤에는 .bat 으로 끝나게 저장해야함
이런 느낌으로 파일 만들면 됌
이제 이 파일을 실행하면 다이슨이 시작되기 전에 구글드라이브에서 세이브파일 불러오고, 스팀에 다이슨 스피어 프로그램 실행요청 보내고
게임 꺼질때 까지 대기하게 됌.
꺼진 이후에는 다시 드라이브에 동기화 하구
쓰고보니 쓸모없는 팁인거같네 ㅌㅌㅌㅌㅌ
배치쉘 스크립트도 직접 짠거임?
ㅇㅇ
헉 다시보니 백업파일 옮길떄 옵션 잘못넣어놨었네 수정함 ㄳㄳ
동기화 소스 좀더 깔끔하게 짜봄
아멘아멘