Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ::2020년 12월 27일에 배포한 1.01 버전의 내용입니다.
- ::테스트용, 1로 바꾸면 배치파일 동작 과정이 보입니다.
- set debugmode=0
- ::업데이트 기능을 끄려면 아래 1을 0으로 바꿔주세요
- set CheckUpdate=1
- :: 스크립트 버전
- set SCRIPTVER=V1.01
- IF %debugmode% EQU 1 if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )
- IF %DEBUGMODE% NEQ 1 mode con cols=80 lines=15
- IF %DEBUGMODE% NEQ 1 @echo off
- IF %DEBUGMODE% NEQ 1 @cls
- :: =====================================================================================
- :: 초기화
- :: =====================================================================================
- :SCRIPT_RESTART
- setlocal enabledelayedexpansion
- pushd %~dp0
- ::_Tool폴더 존재여부 확인
- IF NOT EXIST _Tool GOTO UNZIP_ERROR
- :: 관리자 권한으로 실행
- @echo 관리자권한 확인용 >%windir%\admin.confirm || @(
- echo Set UAC = CreateObject^("Shell.Application"^) > "%tmp%\admin.vbs"
- echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%tmp%\admin.vbs"
- "%tmp%\admin.vbs" & del "%tmp%\admin.vbs" & exit)
- @del %windir%\admin.confirm
- :: EXTD
- @shift /0
- @set "b2eextd=%~dp0_Tool\extd.exe"
- @set "extd=@call:extd"
- @set "b2etempfile=%temp%\extd.tmp"
- @_Tool\wizapp.exe PB CLOSE
- IF "%DEBUGMODE%" NEQ "1" %extd% /hideself
- set "CurDir=%cd%"
- ::창 맨 앞으로 땡기기
- set "top=@call:window_top"
- ::문자 변환
- set "JREPL=_Tool\JREPL"
- ::해시 비교
- set "Hashdeep=_Tool\hashdeep.exe"
- ::버전 변환
- set CUR_SCRIPT_VER=%SCRIPTVER:.=%
- set CUR_SCRIPT_VER=%CUR_SCRIPT_VER:V=%
- set "BuildNo=%CUR_SCRIPT_VER%"
- ::Wizapp
- set watitle=잉여로운 망영전 관리 스크립트
- set wasig=%SCRIPTVER%
- set "wz=%CD%\_tool\wizapp.exe"
- set "waico=%CD%\_tool\icon.ico"
- set "wabmp=%CD%\_tool\bg.bmp"
- set "wabat=%temp%\wabat.bat"
- set waoutput=
- set walabels=
- set wainput=
- set watext=
- set warn=0
- set Heroes_root=
- :: =====================================================================================
- :: 자동 업데이트
- :: =====================================================================================
- set run_update=0
- IF %CheckUpdate% NEQ 1 goto SKIP_UPDATE_CHECK
- For /f "tokens=1-3 delims=/ " %%a in ('date /t') do set curdate=%%a%%b%%c
- IF EXIST "_tool\last_update_check.cmd" (
- call "_tool\last_update_check.cmd"
- IF "!last_update_check!" EQU "!curdate!" GOTO SKIP_UPDATE_CHECK
- )
- Ping www.google.nl -n 1 -w 1000>nul
- if %errorlevel% NEQ 0 goto SKIP_UPDATE_CHECK
- set watext=스크립트 업데이트 확인중입니다.~~잠시만 기다려주세요...~~현재 스크립트 버전 : %CUR_SCRIPT_VER%
- %top%
- start "" "%wz%" PB OPEN
- :: 필요한 정보 다운로드
- IF EXIST "%temp%\tistory.txt" del /q "%temp%\tistory.txt"
- IF EXIST "%temp%\tistory2.txt" del /q "%temp%\tistory2.txt"
- powershell.exe -c "(new-object System.Net.WebClient).DownloadFile(‘http://comduck.tistory.com/m/35#yview’,’%temp%\tistory2.txt’)"
- start "" "%wz%" PB update 50
- IF NOT EXIST "%temp%\tistory2.txt" (
- "%wz%" PB CLOSE
- set UTD=0
- GOTO VCEND
- )
- for /f "tokens=1,* delims=[$] usebackq" %%a in ("%temp%\tistory2.txt") do (
- IF 1%%a EQU +1%%a (
- SET "VARI_%%a=%%b"
- )
- )
- IF %VARI_1% EQU 0 (
- set UTD=0
- goto VCEND
- )
- IF EXIST "%temp%\tistory2.txt" del /q "%temp%\tistory2.txt"
- ::특수문자 변환
- ::FOR /L %%a in (1,1,6) DO (
- FOR /L %%a in (1,1,3) DO (
- SET "VARI_%%a=!VARI_%%a:\/=/!"
- set "VARI_%%a=!VARI_%%a:&=&!"
- set "VARI_%%a=!VARI_%%a:&=&!"
- set "VARI_%%a=!VARI_%%a:%=%!"
- )
- ::=======================================================
- set "RELEASE_VER=%VARI_1%"
- set "SCRIPT_DL_LINK=%VARI_2%"
- set "MD5_SCRIPT=%VARI_3%"
- ::set "Tvar4=%VARI_4%"
- ::set "Tvar5=%VARI_5%"
- ::set "Tvar6=%VARI_6%"
- echo set "RELEASE_VER=%VARI_1%" >_tool\last_update_check.cmd
- echo set "SCRIPT_DL_LINK=%VARI_2%">>_tool\last_update_check.cmd
- echo set "MD5_SCRIPT=%VARI_3%">>_tool\last_update_check.cmd
- ::echo set "Tvar4=%VARI_4%">>_tool\last_update_check.cmd
- ::echo set "Tvar5=%VARI_5%">>_tool\last_update_check.cmd
- ::echo set "Tvar6=%VARI_6%">>_tool\last_update_check.cmd
- ::=======================================================
- "%wz%" PB close
- set UTD=0
- IF %RELEASE_VER% LSS %CUR_SCRIPT_VER% (
- For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
- set "wabmp=%cd%\_tool\bg_warn.bmp"
- set watext=업데이트 확인 실패~~현재 사용중인 스크립트는 테스트 버전입니다.~[등록된 최신 버전보다 더 버전이 높음]~~업데이트 확인은 하루에 한번만 시도합니다.
- %top%
- "%wz%" NOBACK FINISH NOCANCEL TB
- goto SKIP_UPDATE_CHECK
- )
- IF %RELEASE_VER% EQU NULL goto VCEND
- IF %RELEASE_VER% GTR %CUR_SCRIPT_VER% (
- echo set "RELEASE_VER=%VARI_1%" >_tool\NV.cmd
- echo set "SCRIPT_DL_LINK=%VARI_2%">>_tool\NV.cmd
- echo set "MD5_SCRIPT=%VARI_3%">>_tool\NV.cmd
- echo set "Tvar4=%VARI_4%">>_tool\NV.cmd
- echo set "Tvar5=%VARI_5%">>_tool\NV.cmd
- echo set "Tvar6=%VARI_6%">>_tool\NV.cmd
- goto NEW_VER_FOUND
- )
- IF %RELEASE_VER% EQU %CUR_SCRIPT_VER% set UTD=1
- :VCEND
- For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
- IF %UTD% equ 1 (
- set "wabmp=%cd%\_Tool\bg_FINISH.bmp"
- set watext=업데이트 확인 완료~~현재 사용중인 스크립트는 최신 버전입니다.~업데이트 확인은 하루에 한번만 시도합니다.
- )
- IF %UTD% equ 0 (
- set "wabmp=%cd%\_Tool\bg_WARN.bmp"
- set watext=업데이트 확인 실패~~스크립트 버전 정보를 얻는데 실패하였습니다.~업데이트 확인은 하루에 한번만 시도합니다.
- )
- %top%
- "%wz%" NOBACK FINISH NOCANCEL TB
- ::업데이트 확인 끝
- :SKIP_UPDATE_CHECK
- :: =====================================================================================
- :: 경로 검색 / 변수 설정
- :: =====================================================================================
- ::백업경로
- SET "Backup_Dir=%cd%\_Backup"
- ::망전찾기
- IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
- SET Heroes_REG=HKLM\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR
- ) else (
- SET Heroes_REG=HKLM\SOFTWARE\Nexon\Heroes\ko-KR
- )
- FOR /F "TOKENS=3 USEBACKQ" %%A IN (`REG QUERY %Heroes_REG% /v RootPath 2^>nul`) DO (
- set "Heroes_Root=%%A"
- )
- ::마영전 찾을 수 없음
- IF "%Heroes_Root%" EQU "" GOTO Heroes_Not_Found
- ::NGM찾기
- SET NGM=
- IF EXIST "%Heroes_Root%\NGM.exe" SET "NGM=%Heroes_Root%\NGM.exe"
- IF "%NGM%" EQU "" (
- IF EXIST "C:\ProgramData\Nexon\NGM\NGM.exe" SET "NGM=C:\ProgramData\Nexon\NGM\NGM.exe"
- )
- ::세부경로
- set "Heroes_Ko_KR=%Heroes_Root%\ko-KR"
- set "Heroes_cfg=%Heroes_Ko_KR%\cfg"
- set "Heroes_bin=%Heroes_Ko_KR%\bin"
- set "Heroes_sound=%Heroes_Ko_KR%\sound"
- set "Heroes_sound_amb=%Heroes_Ko_KR%\sound\ambient"
- set "Heroes_sound_bgm=%Heroes_Ko_KR%\sound\bgm"
- set "configTXT=%Heroes_bin%\config_material.txt"
- ::레지스트리 등록용 슬래시 두개로 변환
- set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
- ::임시파일 제거
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- :: =====================================================================================
- :: 작업 선택
- :: =====================================================================================
- :SELECT
- set wabmp=_tool\BG.bmp
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wafile=
- set wainput=
- set walabels=
- set waoutnum=
- set waoutnum=0
- set watext=원하는 작업을 선택하세요
- SET WAINPUT=배경음악,환경음악 교체/제거;배경음악,환경음악 복원;NGM으로 게임 패치 받기;캐릭터 조작키 설정 파일 관련 메뉴;그래픽 옵션 관련 메뉴;레지스트리 백업
- %top%
- "%wz%" NOBACK RB
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
- set job=0
- IF %waoutnum% EQU 0 GOTO JOB0
- IF %waoutnum% EQU 1 GOTO JOB1
- IF %waoutnum% EQU 2 GOTO JOB2
- IF %waoutnum% EQU 3 GOTO JOB3
- IF %waoutnum% EQU 4 GOTO JOB4
- IF %waoutnum% EQU 5 GOTO JOB5
- :: =====================================================================================
- :: Job0 - BGM,Ambient[환경 소음] 제거
- :: =====================================================================================
- :JOB0
- set wabmp=_tool\BG.bmp
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wafile=
- set wainput=
- set walabels=
- set waoutnum=
- FOR /F "Tokens=* Usebackq" %%a in ("_Resource\Sound\Mute\Mute_List.txt") DO (
- set TmpStr=
- Set TmpStr=%%~nxa
- IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~[무음] !TmpStr!
- IF "!Wainput!" EQU "" SET Wainput=[무음] !TmpStr!
- )
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "_Resource\Sound\Change"`) DO (
- set TmpStr=
- Set TmpStr=%%~nxa
- IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~[교체] !TmpStr!
- IF "!Wainput!" EQU "" SET Wainput=[교체] !TmpStr!
- )
- set watext=교체될 소리 파일의 목록이 아래에 표시됩니다.~경로 : _Resource\Sound\~~원본 파일은 자동으로 백업됩니다.~백업 경로:_Backup\Sound\
- %top%
- "%wz%" FT
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- FOR /F "Tokens=* Usebackq" %%a in ("_Resource\Sound\Mute\Mute_List.txt") DO (
- IF EXIST "%Heroes_sound_bgm%\%%a" (
- IF NOT EXIST "%Backup_Dir%\Sound\Mute\" MD "%Backup_Dir%\Sound\Mute\"
- IF NOT EXIST "%Backup_Dir%\Sound\Mute\%%a" ECHO F|XCOPY /Y "%Heroes_sound_bgm%\%%a" "%Backup_Dir%\Sound\Mute\"
- IF /i %%~xa EQU .mp3 echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.mp3" "%Heroes_sound_bgm%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Sound] %%a"
- IF /i %%~xa EQU .wav echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.wav" "%Heroes_sound_bgm%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Sound] %%a"
- )
- IF EXIST "%Heroes_sound_amb%\%%a" (
- IF NOT EXIST "%Backup_Dir%\Sound\Mute\Amb\" MD "%Backup_Dir%\Sound\Mute\Amb\"
- IF NOT EXIST "%Backup_Dir%\Sound\Mute\Amb\%%a" ECHO F|XCOPY /Y "%Heroes_sound_amb%\%%a" "%Backup_Dir%\Sound\Mute\Amb\"
- IF /i %%~xa EQU .mp3 echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.mp3" "%Heroes_sound_amb%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Ambient] %%a "
- IF /i %%~xa EQU .wav echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.wav" "%Heroes_sound_amb%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Ambient] %%a"
- )
- )
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "_Resource\Sound\Change"`) DO (
- FOR /F "Tokens=* Usebackq" %%b in (`DIR /b /s "%Heroes_sound%\%%~nxa"`) DO (
- IF EXIST "%%b" (
- IF NOT EXIST "%Backup_Dir%\Sound\Change\" MD "%Backup_Dir%\Sound\Change\"
- IF NOT EXIST "%Backup_Dir%\Sound\Change\%%~nxa" ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Sound\Change\"
- ECHO F|XCOPY /Y "%%a" "%%b"&&Set "WhatIDid=!WhatIDid!~[교체] %%~nxa"
- )
- )
- )
- set FinishText=작업을 완료하였습니다.~~원본 파일 백업 경로 :~%Backup_Dir%\Sound\~~교체된 파일 목록~------------------------%WhatIDid%
- GOTO FINISH
- :: =====================================================================================
- :: Job1 - BGM 복원
- :: =====================================================================================
- :JOB1
- set wabmp=_tool\BG.bmp
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wafile=
- set wainput=
- set walabels=
- set waoutnum=
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s /a-d "_Backup\Sound"`) DO (
- set TmpStr=
- Set TmpStr=%%~nxa
- IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~!TmpStr!
- IF "!Wainput!" EQU "" SET Wainput=!TmpStr!
- )
- set watext=복원할 BGM 파일의 목록이 아래에 표시됩니다.~~백업 경로 : _Backup\Sound\Change~복원 경로 : %Heroes_root%\ko-KR\sound
- %top%
- "%wz%" FT
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- set WhatIDid=
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s /a-d "_Backup\Sound"`) DO (
- IF EXIST "%Heroes_sound_bgm%\%%~nxa" (
- echo f|xcopy /y "%%a" "%Heroes_sound_bgm%\%%~nxa" &&Set "WhatIDid=!WhatIDid!~%%~nxa"
- )
- IF EXIST "%Heroes_sound_amb%\%%~nxa" (
- echo f|xcopy /y "%%a" "%Heroes_sound_amb%\%%~nxa" &&Set "WhatIDid=!WhatIDid!~%%~nxa"
- )
- )
- set FinishText=복원을 완료하였습니다.~~사용한 백업 파일 경로 : _Backup\Sound ~~복원한 파일 목록~------------------------%WhatIDid%
- GOTO FINISH
- :: =====================================================================================
- :: Job2 - 패치 미리받기
- :: =====================================================================================
- :JOB2
- START "" "%NGM%" -mode:patch -game:73739 -patchdir:'%Heroes_Root%' -patchurl:'http://heroes.dn.nexoncdn.co.kr/ko-KR/Patch_Full/PatchData'
- set FinishText=NGM.exe에 패치 명령을 보냈습니다.~~잠시 후 NGM이 실행됩니다.
- GOTO FINISH
- :: =====================================================================================
- :: Job3 - 캐릭터 키 설정 파일 관련 메뉴
- :: =====================================================================================
- :JOB3
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set wabmp=_tool\BG.bmp
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- set waoutnum=0
- set watext=원하는 작업을 선택하세요
- SET WAINPUT=키 설정 파일 백업;키 설정 파일 복원;키 설정파일 다른 캐릭터에 붙여넣기
- %top%
- "%wz%" RB
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
- set job=0
- IF %waoutnum% EQU 0 GOTO JOB3_1
- IF %waoutnum% EQU 1 GOTO JOB3_2
- IF %waoutnum% EQU 2 GOTO JOB3_3
- ::3_1 백업
- :JOB3_1
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- IF EXIST "%temp%\charaCFG*.txt" DEL /Q "%temp%\charaCFG*.txt"
- set watext=키 설정을 백업할 캐릭터를 선택하세요~~[Ctrl] : 복수 선택~[Shift] : 첫 클릭부터 다음 클릭까지 모두 선택
- set i=0
- set j=1
- ECHO ▶저장된 키 설정 파일 모두 백업하기>>"%Wafile%"
- ECHO ---------------------------------->>"%Wafile%"
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
- IF /i %%~na NEQ config_env (
- SET /A j=!j!+1
- SET "Chara_Name=%%~na"
- SET "Chara_Name=!Chara_Name:Config_=!"
- echo %%a>%temp%\CharaCFG!j!.txt
- ECHO !Chara_Name! ▶%%a>>"%Wafile%"
- )
- )
- set WhatIDid=
- %top%
- "%wz%" LB MULTIPLE
- IF %ERRORLEVEL% EQU 1 goto JOB3
- IF %ERRORLEVEL% NEQ 0 goto EXIT
- call "%wabat%"
- IF "%waoutput%" EQU "" goto JOB3_1
- set COPYALL=0
- If /i "%waoutput%" EQU "▶저장된 키 설정 파일 모두 백업하기" set COPYALL=1
- If /i "%waoutput%" EQU "----------------------------------" goto JOB3_1
- FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
- set "Selected_CFG=%%b"
- )
- set CFG_Number=%!!%
- set CFGNames=
- FOR %%Z IN (%CFG_Number%) DO (
- for /f "tokens=* usebackq" %%b in ("%temp%\CharaCFG%%Z.txt") do (
- SET CFGNames=!CFGNames! %%~nb
- SET CFGNames=!CFGNames:Config_=!
- )
- )
- del /q "%wabat%"
- :JOB3_1_SELDIR
- set "Wafile=%temp%\wafile2.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- set watext=선택된 캐릭터 목록~!CFGNames!~~--------------------~백업 파일의 저장 경로를 선택해주세요.
- IF %COPYALL% EQU 1 set watext=선택된 캐릭터 목록~[모든 캐릭터]~~--------------------~백업 파일의 저장 경로를 선택해주세요.
- echo _Backup\Key\%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분>>"%wafile%"
- echo _Backup\Key\폴더 이름 직접 입력하기>>"%wafile%"
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto JOB3_1
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO JOB3_1_SELDIR
- IF "%waoutput%" EQU "_Backup\Key\폴더 이름 직접 입력하기" GOTO JOB3_1_0_SELDIR_MENU
- set "KeyBackupFolderName=%waoutput:_Backup\Key\=\%"
- GOTO JOB3_1_Export
- :JOB3_1_0_SELDIR_MENU
- set waoutput=
- set watext=선택된 캐릭터 목록~!CFGNames!~~--------------------~백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 : !REG3XP0!>~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분
- IF %COPYALL% EQU 1 set watext=선택된 캐릭터 목록~[모든 캐릭터]~~--------------------~백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 : ~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분
- %top%
- "%wz%" EB
- IF %ERRORLEVEL% EQU 1 goto JOB3_1_SELDIR
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" (
- set "waoutput=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분"
- )
- set "KeyBackupFolderName=\%waoutput%"
- set waoutput=
- ::3_1 백업파일 처리
- :JOB3_1_Export
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set "Wafile=%temp%\wafile.txt"
- set totalcnt=0
- IF %COPYALL% EQU 1 GOTO 3_1_COPYALL
- FOR %%Z IN (%CFG_Number%) DO (
- for /f "tokens=* usebackq" %%b in ("%temp%\CharaCFG%%Z.txt") do (
- IF NOT EXIST "%Backup_Dir%\Key%KeyBackupFolderName%" MD "%Backup_Dir%\Key%KeyBackupFolderName%"
- IF /i %%~xb EQU .cfg IF EXIST "%Backup_Dir%\Key%KeyBackupFolderName%\%%~nxb" (
- set watext=%%~nxb 파일이 이미 존재합니다.~덮어씌우시겠습니까?
- %top%
- "%wz%" MB QUESTION
- IF !ERRORLEVEL! EQU 0 (
- ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
- )
- ) ELSE (
- ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
- )
- )
- )
- GOTO 3_1_FINISH
- :3_1_COPYALL
- FOR /F "Tokens=1,* Delims=▶ Usebackq" %%a in ("%wafile%") DO (
- IF NOT EXIST "%Backup_Dir%\Key%KeyBackupFolderName%" MD "%Backup_Dir%\Key%KeyBackupFolderName%"
- IF /i %%~xb EQU .cfg IF EXIST "%Backup_Dir%\Key%KeyBackupFolderName%\%%~nxb" (
- set watext=%%~nxb 파일이 이미 존재합니다.~덮어씌우시겠습니까?
- %top%
- "%wz%" MB QUESTION
- IF !ERRORLEVEL! EQU 0 (
- ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
- )
- ) ELSE (
- ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
- )
- )
- )
- :3_1_FINISH
- IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~저장 경로~_Backup\Key%KeyBackupFolderName%~~백업한 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
- IF %totalcnt% EQU 0 (
- set warn=1
- set FinishText=백업에 실패했습니다.~원본 또는 대상이 유효하지 않습니다.
- )
- GOTO FINISH
- FOR %%a in ("%Selected_CFG%") DO (
- set /a totalcnt=!totalcnt!+1
- IF NOT EXIST "%Backup_Dir%\Key\" MD "%Backup_Dir%\Key\"
- IF NOT EXIST "%Backup_Dir%\Key\%%~nxa" (
- ECHO F|XCOPY /Y "%%a" "%Backup_Dir%\Key\"
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!~%%~nxa
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
- )
- IF /i %%~xa EQU .cfg IF EXIST "%Backup_Dir%\Key\%%~nxa" (
- set watext=%%~nxa 파일이 이미 존재합니다.~덮어씌우시겠습니까?
- %top%
- "%wz%" MB QUESTION
- IF !ERRORLEVEL! EQU 0 (
- ECHO F|XCOPY /Y "%%a" "%Backup_Dir%\Key\"
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!~%%~nxa
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
- )
- )
- )
- ::3_2 복원
- :JOB3_2
- :JOB3_2_SELDIR
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Key\"`) DO (
- ECHO _Backup\Key\%%a>>"%wafile%"
- )
- IF NOT EXIST "%wafile%" (
- set watext=백업한 파일이 없습니다.~백업을 먼저 한 이후에 실행해주세요.
- %top%
- "%wz%" MB STOP
- GOTO EXIT
- )
- set watext=복원하려는 파일이 들어있는 폴더를 선택해주세요.
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto JOB3
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO JOB3_2_SELDIR
- set "KeyBackupFolderName=%waoutput%"
- GOTO JOB3_2_Import
- :JOB3_2_Import
- set WhatIDid=
- set totalcnt=0
- FOR /F "Tokens=* Usebackq" %%a in (`dir /b /s "%waoutput%"`) DO (
- IF EXIST "%Heroes_cfg%\%%~nxa" (
- set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분_복원 전 자동백업"
- IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
- ECHO F|XCOPY /Y "%Heroes_cfg%\%%~nxa" "%Backup_Dir%\Key\!TBackupFolName!\"
- )
- XCOPY /Y "%%a" "%Heroes_cfg%\"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
- )
- )
- IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~복원에 사용한 폴더 이름 : ~%KeyBackupFolderName%~~복원한 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
- IF %totalcnt% EQU 0 (
- set warn=1
- set FinishText=복원에 실패했습니다.~원본 또는 대상이 유효하지 않습니다.
- )
- GOTO FINISH
- ::3_3 덮어쓰기
- :JOB3_3
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- IF EXIST "%temp%\charaCFG*.txt" DEL /Q "%temp%\charaCFG*.txt"
- set watext=키 설정이 완료된[원본] 캐릭터를 선택하세요.
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
- IF /i %%~na NEQ config_env (
- SET "Chara_Name=%%~na"
- SET "Chara_Name=!Chara_Name:Config_=!"
- ECHO !Chara_Name! ▶%%a>>"%Wafile%"
- )
- )
- set WhatIDid=
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto JOB3_3
- IF %ERRORLEVEL% NEQ 0 goto EXIT
- call "%wabat%"
- IF "%waoutput%" EQU "" goto JOB3_3
- set COPYALL=0
- FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
- set "Src_CFG=%%b"
- )
- del /q "%wabat%"
- :JOB3_3_2
- set wainput=0
- set waoutnum=
- set waoutput=
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- IF EXIST "%temp%\CharaCFG*.txt" DEL /Q "%temp%\CharaCFG*.txt"
- set watext=선택된 원본 캐릭터 설정 파일 : %src_cfg%~~키 설정을 덮어쓸[대상] 캐릭터를 선택하세요~~[Ctrl] : 복수 선택~[Shift] : 첫 클릭부터 다음 클릭까지 모두 선택
- set i=0
- set j=1
- ECHO ▶모든 캐릭터에 덮어씌우기>>"%Wafile%"
- ECHO ---------------------------------->>"%Wafile%"
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
- IF /i %%~na NEQ config_env (
- SET /A j=!j!+1
- SET "Chara_Name=%%~na"
- SET "Chara_Name=!Chara_Name:Config_=!"
- echo %%a>%temp%\CharaCFG!j!.txt
- ECHO !Chara_Name! ▶%%a>>"%Wafile%"
- )
- )
- set WhatIDid=
- %top%
- "%wz%" LB MULTIPLE
- IF %ERRORLEVEL% EQU 1 goto JOB3_3_2
- IF %ERRORLEVEL% NEQ 0 goto EXIT
- call "%wabat%"
- IF "%waoutput%" EQU "" goto JOB3_3_2
- set COPYALL=0
- If /i "%waoutput%" EQU "▶모든 캐릭터에 덮어씌우기" set COPYALL=1
- If /i "%waoutput%" EQU "----------------------------------" goto JOB3_3_2
- FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
- set "Tgt_CFG=%%b"
- )
- set Tgt_CFG_Number=%!!%
- del /q "%wabat%"
- :Job_3_3_COPY
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set WhatIDid=
- set totalcnt=0
- IF %COPYALL% EQU 1 GOTO 3_3_COPYALL
- FOR %%Z IN (%Tgt_CFG_Number%) DO (
- for /f "tokens=* usebackq" %%a in ("%temp%\CharaCFG%%Z.txt") do (
- set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분_덮어쓰기 전 자동백업"
- IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
- ECHO F|XCOPY /Y "%%a" "_Backup\Key\!TBackupFolName!\"
- IF "%%a" NEQ "%Src_CFG%" (
- ECHO F|XCOPY /Y "%Src_CFG%" "%%a"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
- )
- )
- )
- GOTO Job_3_3_FINISH
- :3_3_COPYALL
- set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분_덮어쓰기 전 자동백업"
- IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
- FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
- IF /i %%~na NEQ config_env IF /i "%%a" NEQ "%Src_CFG%" (
- ECHO F|XCOPY /Y "%%a" "_Backup\Key\!TBackupFolName!\"
- ECHO F|XCOPY /Y "%Src_CFG%" "%%a"
- set /a totalcnt=!totalcnt!+1
- IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
- IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
- )
- )
- :Job_3_3_FINISH
- IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~각 캐릭터의 전용 스킬[TAB 등]은 접속 후 수정해주세요.~~원본 캐릭터 설정 파일~%Src_CFG%~~덮어쓴 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
- IF %totalcnt% EQU 0 (
- set warn=1
- set FinishText=시행할 작업이 없습니다.~~선택한 대상이 없거나 원본과 대상이 같습니다.
- )
- GOTO FINISH
- :: =====================================================================================
- :: Job4 - 그래픽 옵션 관련 메뉴
- :: =====================================================================================
- :JOB4
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set wabmp=_tool\BG.bmp
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- set waoutnum=0
- set cfg_ro=0
- SET TmpStr=
- FOR /F "TOKENS=* USEBACKQ" %%A IN (`attrib "%configTXT%"`) DO (
- SET "TmpStr=%%A"
- SET "TmpStr=!TmpStr:%ConfigTXT%=!"
- )
- FOR /F "TOKENS=* USEBACKQ" %%A IN (`ECHO !TmpStr!^|Findstr R`) DO (
- IF "%%A" NEQ "" set cfg_ro=1
- )
- set watext=원하는 작업을 선택하세요
- IF %cfg_ro% EQU 1 SET WAINPUT=그래픽 설정 파일 백업;그래픽 설정 파일 복원;설정 파일 열기;설정 파일 읽기 전용 해제 [현재 읽기 전용]
- IF %cfg_ro% EQU 0 SET WAINPUT=그래픽 설정 파일 백업;그래픽 설정 파일 복원;설정 파일 열기;설정 파일 읽기 전용 설정 [현재 쓰기 가능]
- %top%
- "%wz%" RB
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
- set job=0
- IF %waoutnum% EQU 0 GOTO JOB4_1
- IF %waoutnum% EQU 1 GOTO JOB4_2
- IF %waoutnum% EQU 2 GOTO JOB4_3
- IF %waoutnum% EQU 3 GOTO JOB4_4
- :JOB4_1
- ::그래픽 설정 백업
- :JOB4_1_SELDIR
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- set watext=백업 파일의 저장 경로를 선택해주세요.
- echo _Backup\Config\%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분>>"%wafile%"
- echo _Backup\Config\폴더 이름 직접 입력하기>>"%wafile%"
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto JOB4
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO JOB4_1_SELDIR
- IF "%waoutput%" EQU "_Backup\Config\폴더 이름 직접 입력하기" GOTO JOB4_1_0_SELDIR_MENU
- set "ConfigBackupFolderName=%waoutput:_Backup\Config\=\%"
- GOTO JOB4_1_Export
- :JOB4_1_0_SELDIR_MENU
- set waoutput=
- set watext=백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 :~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분
- %top%
- "%wz%" EB
- IF %ERRORLEVEL% EQU 1 goto JOB4_1_0
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" (
- set "waoutput=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분"
- )
- set "ConfigBackupFolderName=\%waoutput%"
- set waoutput=
- ::4_1 백업파일 처리
- :JOB4_1_Export
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set "Wafile=%temp%\wafile.txt"
- set totalcnt=0
- IF NOT EXIST "%Backup_Dir%\Config%ConfigBackupFolderName%" MD "%Backup_Dir%\Config%ConfigBackupFolderName%"
- IF NOT EXIST "%Backup_Dir%\Config%ConfigBackupFolderName%\config_material.txt" (
- ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config%ConfigBackupFolderName%\"
- set FinishText=그래픽 설정 파일 백업을 완료했습니다.~~저장 경로 : ~%Backup_Dir%\Config%ConfigBackupFolderName%\
- goto FINISH
- ) ELSE (
- set watitle 백업 경로에 이미 설정파일이 있습니다.~덮어씌우시겠습니까?
- %top%
- "%wz%" MB QUESTION
- IF %ERRORLEVEL% EQU 0 (
- ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config%ConfigBackupFolderName%\"
- set FinishText=그래픽 설정 파일 백업을 완료했습니다.~~저장 경로 : ~%Backup_Dir%\Config%ConfigBackupFolderName%\
- goto FINISH
- ) ELSE (
- set watext=작업을 취소했습니다.
- %top%
- "%wz%" MB STOP
- GOTO EXIT
- )
- )
- ::그래픽 설정 복원
- :JOB4_2
- :JOB4_2_SELDIR
- set "Wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Config\"`) DO (
- ECHO _Backup\Config\%%a>>"%wafile%"
- )
- IF NOT EXIST "%wafile%" (
- set watext=백업한 파일이 없습니다.~백업을 먼저 한 이후에 실행해주세요.
- %top%
- "%wz%" MB STOP
- GOTO EXIT
- )
- set watext=복원하려는 파일이 들어있는 폴더를 선택해주세요.
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto JOB4
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO job4_2_SELDIR
- set "ConfigBackupFolderName=%waoutput%"
- GOTO job4_2_Import
- :job4_2_Import
- set WhatIDid=
- set totalcnt=0
- set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%시%time:~3,2%분_복원 전 자동백업"
- IF NOT EXIST "%Backup_Dir%\Config\!TBackupFolName!" MD "%Backup_Dir%\Config\!TBackupFolName!"
- ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config\!TBackupFolName!"
- ECHO F|XCOPY /Y "%ConfigBackupFolderName%\config_material.txt" "%configTXT%"
- set FinishText=그래픽 설정 파일을 복원했습니다.~~복원에 사용한 폴더 : ~%ConfigBackupFolderName%
- GOTO FINISH
- :JOB4_3
- start "" "%configTXT%"
- GOTO JOB4
- :JOB4_4
- IF %cfg_ro% EQU 1 (
- ATTRIB -R "%configTXT%"
- set FinishText=~그래픽 설정 파일에 읽기 전용을 해제했습니다.~~경로 : %ConfigTXT%~명령 : ATTRIB -R [...]config_material.txt
- goto Finish
- )
- IF %cfg_ro% EQU 0 (
- ATTRIB +R "%configTXT%"
- set FinishText=~config_material.txt는 이제 읽기 전용입니다.~~경로 : %ConfigTXT%~명령 : ATTRIB +R [...]config_material.txt
- goto Finish
- )
- GOTO FINISH
- :: =====================================================================================
- :: Job5 - 레지스트리
- :: =====================================================================================
- :JOB5
- set wabmp=_tool\BG.bmp
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set waoutput=
- set wafile=
- set wainput=
- set walabels=
- set waoutnum=
- set "Heroes_Root=%Heroes_Root:\heroes.exe=%"
- set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
- set "Heroes_Root_NSC=%Heroes_Root:\=_%"
- set result=
- %extd% /strreplace %Heroes_Root_NSC% ^: @
- set "Heroes_Root_NSC=%result%"
- set result=
- set "RegFileName=%Heroes_Root_NSC%.reg"
- IF NOT EXIST "%Backup_Dir%\Reg\" MD "%Backup_Dir%\Reg\"
- ECHO Windows Registry Editor Version 5.00>"%Backup_Dir%\Reg\!RegFileName!"
- IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
- ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
- ) ELSE (
- ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
- )
- ECHO "RootPath"="%Heroes_Root_DBS%">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "Icon"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe,0">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "IconDestPath0"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Nexon\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "IconDestPath1"="C:\\Users\\Public\\Desktop\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "Executable"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe">>"%Backup_Dir%\Reg\!RegFileName!"
- set FinishText=마영전 경로 정보를 담은 레지스트리를 백업했습니다.~~경로 : ~_Backup\Reg\!RegFileName!~~복구 메뉴는 레지스트리를 찾을 수 없을때만 표시됩니다.
- goto FINISH
- set FinishText=작업을 완료하였습니다.~~교체된 파일 목록~------------------------%WhatIDid%
- GOTO FINISH
- :: =====================================================================================
- :: FINISH - 완료창
- :: =====================================================================================
- :FINISH
- set wabmp=_Tool\BG_FINISH.bmp
- set waoutput=
- set wafile=
- set wainput=
- set walabels=
- set waoutnum=
- "%wz%" PB CLOSE
- set "Watext=%FinishText%"
- set "wabmp=%CD%\_tool\BG_FINISH.bmp"
- IF "%warn%" EQU "1" set "wabmp=%CD%\_tool\BG_warn.bmp"
- %top%
- set walabels=처음으로(^&R);2;완료(^&F)
- %top%
- "%wz%" FINISH NOCANCEL TB
- IF %ERRORLEVEL% EQU 1 GOTO SCRIPT_RESTART
- GOTO EXIT
- :: =====================================================================================
- :: 오류창
- :: =====================================================================================
- :UNZIP_ERROR
- color 4f
- cls
- echo.
- echo
- echo Tool 폴더를 찾을 수 없음
- echo
- echo.
- echo 배치파일 실행에 필요한 파일을 찾을 수 없습니다.
- echo 압축파일 내용 모두를 압축 해제해주세요.
- echo.
- echo 아무 키나 누르면 창이 닫힙니다.
- pause>nul
- GOTO exit
- :Heroes_Not_Found
- set "wabmp=%CD%\_tool\BG_warn.bmp"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set wafile=
- set waoutput=
- set wainput=
- set walabels=
- set waoutnum=
- set waoutnum=0
- set watext=마영전 설치 경로를 찾을 수 없습니다.~~레지스트리 관련 메뉴만 사용 가능합니다.~원하는 작업을 선택해주세요.
- SET WAINPUT=백업된 파일로 레지스트리 복원;전체 드라이브를 검색하여 레지스트리 등록 [자동];마영전 레지스트리 등록 [수동]
- %top%
- "%wz%" NOBACK RB
- IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
- set job=0
- set wabmp=_tool\bg.bmp
- IF %waoutnum% EQU 0 GOTO HNF1
- IF %waoutnum% EQU 1 GOTO HNF2
- IF %waoutnum% EQU 2 GOTO HNF3
- :HNF1
- set "wafile=%temp%\wafile.txt"
- IF EXIST "%wafile%" DEL /Q "%Wafile%"
- set wainput=
- FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Reg\*.reg"`) DO (
- ECHO _Backup\Reg\%%a>>"%wafile%"
- )
- IF NOT EXIST "%wafile%" (
- set watext=백업한 파일이 없습니다.~다른 메뉴를 선택해주세요.
- %top%
- "%wz%" MB STOP
- GOTO SCRIPT_RESTART
- )
- set watext=복원하려는 레지스트리 파일을 선택해주세요.
- %top%
- "%wz%" LB
- IF %ERRORLEVEL% EQU 1 goto Heroes_Not_Found
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO HNF1
- FOR /F "Tokens=*" %%a in ("%waoutput%") do (
- set "Heroes_root=%%~na"
- )
- set "Heroes_root=%Heroes_root:_=\%"
- set result=
- %extd% /strreplace %Heroes_Root% @ ^:
- set "Heroes_Root=%result%"
- IF NOT EXIST "%Heroes_root%\ko-KR\heroes.exe" GOTO HNF_ERR
- Regedit /s "%waoutput%"
- set FinishText=마영전 설치 경로를 찾았습니다.~~레지스트리가 등록되었습니다.~경로 : %heroes_Root%
- goto FINISH
- :HNF2
- set watext=마영전이 설치된 경로를 검색중입니다,~잠시만 기다려주세요...
- %top%
- "%wz%" PB OPEN
- set Progress=0
- set Heroes_Root=
- FOR /F "Tokens=1 usebackq skip=1" %%a in (`wmic logicaldisk get caption`) do (
- set DrvCnt=0
- set /a DrvCnt=!DrvCnt!+1
- set /A PPD=100/!DRVCnt!
- )
- for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- set i=0
- set /a i=!i!+1
- set watext=마영전이 설치된 경로를 검색중입니다,~잠시만 기다려주세요...~~%%a:에서 마영전 설치 폴더 찾는 중..[!i!/!drvcnt!]
- IF EXIST "%%a:" for /f "tokens=* usebackq" %%i in (`dir /b /s %%a:\heroes.exe^|findstr /i /v "test Debug"`) do (
- set "Heroes_Root=%%i"
- )
- set /a Progress=!Progress!+!ppd!
- start "" "%wz%" PB UPDATE !Progress!
- IF "!Heroes_Root!" NEQ "" (
- "%wz%" PB CLOSE
- goto HNF_REG_ADD
- )
- )
- "%wz%" PB CLOSE
- GOTO HNF_ERR
- :HNF3
- set waoutput=
- set wainput=
- set heroes_root=
- set watext=마영전이 설치된 경로를 선택해주세요.
- %top%
- "%wz%" FB DIR
- IF %ERRORLEVEL% EQU 1 goto Heroes_Not_Found
- IF %ERRORLEVEL% EQU 2 goto EXIT
- IF %ERRORLEVEL% NEQ 0 GOTO EXIT
- @call "%wabat%"
- del /q "%wabat%"
- IF "%waoutput%" EQU "" GOTO HNF3
- set job=0
- for /f "tokens=* usebackq" %%i in (`dir /b /s "%waoutput%\heroes.exe"^|findstr /i /v "test Debug"`) do (
- set "Heroes_Root=%%i"
- )
- IF "%Heroes_Root%" NEQ "" GOTO HNF_REG_ADD
- GOTO HNF_ERR
- :HNF_REG_ADD
- set "Heroes_Root=%Heroes_Root:\ko-KR\heroes.exe=%"
- set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
- set "Heroes_Root_NSC=%Heroes_Root:\=_%"
- set result=
- %extd% /strreplace %Heroes_Root_NSC% ^: @
- set "Heroes_Root_NSC=%result%"
- set result=
- set "RegFileName=%Heroes_Root_NSC%.reg"
- IF NOT EXIST "%Backup_Dir%\Reg\" MD "%Backup_Dir%\Reg\"
- ECHO Windows Registry Editor Version 5.00>"%Backup_Dir%\Reg\!RegFileName!"
- IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
- ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
- ) ELSE (
- ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
- )
- ECHO "RootPath"="%Heroes_Root_DBS%">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "Icon"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe,0">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "IconDestPath0"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Nexon\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "IconDestPath1"="C:\\Users\\Public\\Desktop\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
- ECHO "Executable"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe">>"%Backup_Dir%\Reg\!RegFileName!"
- regedit /s "%Backup_Dir%\Reg\!RegFileName!"
- set FinishText=마영전 설치 경로를 찾았습니다.~~레지스트리가 등록되었습니다.~경로 : %heroes_Root%
- goto FINISH
- :HNF_ERR
- set watext=마영전이 설치된 폴더를 찾을 수 없습니다.~제대로 설치되었는지 확인 후 다시 실행해주세요.~~스크립트를 종료합니다.
- set "wabmp=%CD%\_tool\BG_warn.bmp"
- %top%
- start "" "%wz%" NOBACK NOCANCEL FINISH TB
- IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
- endlocal
- EXIT
- :: =====================================================================================
- :: 업데이트 실행
- :: =====================================================================================
- :NEW_VER_FOUND
- color 2f
- "%wz%" PB CLOSE
- set watext=최신 버전으로 업데이트가 가능합니다.~~현재 버전 : %CUR_SCRIPT_VER%~최신 버전 : %RELEASE_VER%~~다음을 누르면 업데이트를 진행합니다.
- %top%
- "%wz%" NOBACK TB
- IF %ERRORLEVEL% EQU 2 GOTO SKIP_UPDATE_CHECK
- IF "%MD5_SCRIPT%" NEQ "" goto UPDATE_DL
- exit
- :UPDATE_DL
- setlocal enabledelayedexpansion
- set TFILE=mang.7z
- for /l %%a in (1,1,2) do (
- IF "%%a" EQU "3" goto DL_FAIL
- IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
- start "" "%wz%" PB OPEN
- IF %%a EQU 2 start "" "%wz%" PB UPDATE 50
- set watext=최신 버전 스크립트를 다운로드 합니다.~~다운로드 시도 [%%a/2]
- echo.
- echo
- echo 최신 패치 스크립트 다운로드
- echo
- echo.
- echo 업데이트 서버로부터 성공적으로 패치 다운로드 링크를 받았습니다.
- echo.
- echo 다운로드 시도... [%%a/2]
- echo.
- powershell.exe -c "(new-object System.Net.WebClient).DownloadFile(‘%SCRIPT_DL_LINK%’,’%temp%\mang.7z’)"
- "_Tool\hashdeep.exe" -c md5 -s -b "%temp%\%TFILE%" > "%temp%\Hash.txt"
- for /f "tokens=1-5 delims=, usebackq skip=5" %%a in ("%temp%\Hash.txt") do (
- set THash=%%i
- del /q "%temp%\Hash.txt"
- )
- if /i "%MD5_SCRIPT%" EQU "!THash!" (
- goto DL_DONE
- )
- )
- :DL_DONE
- "%wz%" PB CLOSE
- set "wz=%cd%\_tool\wizapp.exe"
- :: 업데이트 임시파일 초기화
- DEL /Q "%temp%\tistory*.txt"
- For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
- IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
- pushd %CurDir%
- echo echo off>"%temp%\1.cmd"
- echo color 2f>>"%temp%\1.cmd"
- echo mode con cols=80 lines=30>>"%temp%\1.cmd"
- echo cls>>"%temp%\1.cmd"
- echo echo.>>"%temp%\1.cmd"
- echo echo >>"%temp%\1.cmd"
- echo echo 스크립트 업데이트 >>"%temp%\1.cmd"
- echo echo >>"%temp%\1.cmd"
- echo echo.>>"%temp%\1.cmd"
- echo echo 스크립트 업데이트 마무리 작업 중입니다.>>"%temp%\1.cmd"
- echo echo.>>"%temp%\1.cmd"
- echo echo 창을 닫지 말고 잠시만 기다려주세요.>>"%temp%\1.cmd"
- echo ping -n 3 127.1^>nul>>"%temp%\1.cmd"
- echo "%CurDir%\_tool\7z.exe" x -aoa "%temp%\mang.7z" -o"%CurDir%\">>"%temp%\1.cmd"
- echo IF EXIST "%CurDir%\_tool\nv.cmd" del /q "%CurDir%\_tool\nv.cmd">>"%temp%\1.cmd"
- echo del /q "%temp%\mang.7z">>"%temp%\1.cmd"
- echo mode con cols=80 lines=15>>"%temp%\1.cmd"
- echo cls>>"%temp%\1.cmd"
- echo echo.>>"%temp%\1.cmd"
- echo echo >>"%temp%\1.cmd"
- echo echo 스크립트 업데이트 완료 >>"%temp%\1.cmd"
- echo echo >>"%temp%\1.cmd"
- echo echo.>>"%temp%\1.cmd"
- echo echo 스크립트 업데이트가 완료되었습니다.>>"%temp%\1.cmd"
- echo set SCRIPTVER=%RELEASE_VER%>>"%temp%\1.cmd"
- echo set watitle=잉여로운 망영전 관리 스크립트>>"%temp%\1.cmd"
- echo set wasig=%SCRIPTVER%>>"%temp%\1.cmd"
- echo set "wz=%CD%\_tool\wizapp.exe">>"%temp%\1.cmd"
- echo set "waico=%CD%\_tool\icon.ico">>"%temp%\1.cmd"
- echo set "wabmp=%CD%\_tool\bg.bmp">>"%temp%\1.cmd"
- echo set "wabat=%temp%\wabat.bat">>"%temp%\1.cmd"
- echo set "watext=스크립트 업데이트를 완료했습니다.~~현재 버전 : %RELEASE_VER%">>"%temp%\1.cmd"
- echo "%wz%" NOBACK FINISH NOCANCEL TB>>"%temp%\1.cmd"
- echo CALL "%cd%\_Start.cmd">>"%temp%\1.cmd"
- start /d "%temp%" 1.cmd
- GOTO EXIT
- :DL_FAIL
- "%wz%" PB CLOSE
- color 4f
- IF %debugmode% NEQ 1 mode con cols=80 lines=15
- IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
- set watext=업데이트 실패~~다운로드 중 오류가 발생했습니다.
- set wabmp=_Tool\bg_WARN.bmp
- "%wz%" NOBACK NOCANCEL FINISH FT
- GOTO EXIT
- :: =====================================================================================
- :: 그 외
- :: =====================================================================================
- :EXIT
- endlocal
- exit
- :extd
- @set result=
- @%b2eextd% "%~1" "%~2" "%~3" "%~4" "%~5" "%~6" "%~7" "%~8" "%~9" > "%b2etempfile%"
- @set /p result= < "%b2etempfile%"
- @del "%b2etempfile%"
- @goto:eof
- :window_top
- echo :LOOP >%temp%\top.cmd
- echo timeout 1 ^>nul>>%temp%\top.cmd
- echo tasklist /fi "imagename eq WizApp.exe" ^| findstr WizApp>>%temp%\top.cmd
- echo IF "%%ERRORLEVEL%%" EQU "0" "_Tool\window.exe" /top %%watitle%%>>%temp%\top.cmd
- echo exit /b>>%temp%\top.cmd
- echo GOTO LOOP>>%temp%\top.cmd
- start /min "" cmd.exe /c "%temp%\top.cmd"
- @goto:eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement