Advertisement
Guest User

Untitled

a guest
Dec 26th, 2020
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 44.16 KB | None | 0 0
  1. ::2020년 12월 27일에 배포한 1.01 버전의 내용입니다.
  2.  
  3. ::테스트용, 1로 바꾸면 배치파일 동작 과정이 보입니다.
  4. set debugmode=0
  5.  
  6. ::업데이트 기능을 끄려면 아래 1을 0으로 바꿔주세요
  7. set CheckUpdate=1
  8.  
  9. :: 스크립트 버전
  10. set SCRIPTVER=V1.01
  11.  
  12. IF %debugmode% EQU 1 if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )
  13. IF %DEBUGMODE% NEQ 1 mode con cols=80 lines=15
  14. IF %DEBUGMODE% NEQ 1 @echo off
  15. IF %DEBUGMODE% NEQ 1 @cls
  16.  
  17. :: =====================================================================================
  18. :: 초기화
  19. :: =====================================================================================
  20. :SCRIPT_RESTART
  21.  
  22. setlocal enabledelayedexpansion
  23. pushd %~dp0
  24.  
  25. ::_Tool폴더 존재여부 확인
  26. IF NOT EXIST _Tool GOTO UNZIP_ERROR
  27.  
  28. :: 관리자 권한으로 실행
  29. @echo 관리자권한 확인용 >%windir%\admin.confirm || @(
  30. echo Set UAC = CreateObject^("Shell.Application"^) > "%tmp%\admin.vbs"
  31. echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%tmp%\admin.vbs"
  32. "%tmp%\admin.vbs" & del "%tmp%\admin.vbs" & exit)
  33. @del %windir%\admin.confirm
  34.  
  35. :: EXTD
  36. @shift /0
  37. @set "b2eextd=%~dp0_Tool\extd.exe"
  38. @set "extd=@call:extd"
  39. @set "b2etempfile=%temp%\extd.tmp"
  40.  
  41. @_Tool\wizapp.exe PB CLOSE
  42.  
  43. IF "%DEBUGMODE%" NEQ "1" %extd% /hideself
  44.  
  45. set "CurDir=%cd%"
  46. ::창 맨 앞으로 땡기기
  47. set "top=@call:window_top"
  48. ::문자 변환
  49. set "JREPL=_Tool\JREPL"
  50. ::해시 비교
  51. set "Hashdeep=_Tool\hashdeep.exe"
  52.  
  53. ::버전 변환
  54. set CUR_SCRIPT_VER=%SCRIPTVER:.=%
  55. set CUR_SCRIPT_VER=%CUR_SCRIPT_VER:V=%
  56. set "BuildNo=%CUR_SCRIPT_VER%"
  57.  
  58. ::Wizapp
  59. set watitle=잉여로운 망영전 관리 스크립트
  60. set wasig=%SCRIPTVER%
  61. set "wz=%CD%\_tool\wizapp.exe"
  62. set "waico=%CD%\_tool\icon.ico"
  63. set "wabmp=%CD%\_tool\bg.bmp"
  64. set "wabat=%temp%\wabat.bat"
  65. set waoutput=
  66. set walabels=
  67. set wainput=
  68. set watext=
  69. set warn=0
  70.  
  71. set Heroes_root=
  72.  
  73. :: =====================================================================================
  74. :: 자동 업데이트
  75. :: =====================================================================================
  76. set run_update=0
  77.  
  78. IF %CheckUpdate% NEQ 1 goto SKIP_UPDATE_CHECK
  79.  
  80. For /f "tokens=1-3 delims=/ " %%a in ('date /t') do set curdate=%%a%%b%%c
  81. IF EXIST "_tool\last_update_check.cmd" (
  82.     call "_tool\last_update_check.cmd"
  83.     IF "!last_update_check!" EQU "!curdate!" GOTO SKIP_UPDATE_CHECK
  84. )
  85.  
  86. Ping www.google.nl -n 1 -w 1000>nul
  87. if %errorlevel% NEQ 0 goto SKIP_UPDATE_CHECK
  88.  
  89. set watext=스크립트 업데이트 확인중입니다.~~잠시만 기다려주세요...~~현재 스크립트 버전 : %CUR_SCRIPT_VER%
  90. %top%
  91. start "" "%wz%" PB OPEN
  92.  
  93. :: 필요한 정보 다운로드
  94. IF EXIST "%temp%\tistory.txt" del /q "%temp%\tistory.txt"
  95. IF EXIST "%temp%\tistory2.txt" del /q "%temp%\tistory2.txt"
  96. powershell.exe -c "(new-object System.Net.WebClient).DownloadFile(‘http://comduck.tistory.com/m/35#yview’,’%temp%\tistory2.txt’)"
  97. start "" "%wz%" PB update 50
  98. IF NOT EXIST "%temp%\tistory2.txt" (
  99.     "%wz%" PB CLOSE
  100.     set UTD=0
  101.     GOTO VCEND
  102. )
  103. for /f "tokens=1,* delims=[$] usebackq" %%a in ("%temp%\tistory2.txt") do (
  104.     IF 1%%a EQU +1%%a (
  105.     SET "VARI_%%a=%%b"
  106.     )
  107. )
  108.  
  109. IF %VARI_1% EQU 0 (
  110.     set UTD=0
  111.     goto VCEND
  112. )
  113.  
  114. IF EXIST "%temp%\tistory2.txt" del /q "%temp%\tistory2.txt"
  115.  
  116. ::특수문자 변환
  117. ::FOR /L %%a in (1,1,6) DO (
  118. FOR /L %%a in (1,1,3) DO (
  119.     SET "VARI_%%a=!VARI_%%a:\/=/!"
  120.     set "VARI_%%a=!VARI_%%a:&=&!"
  121.     set "VARI_%%a=!VARI_%%a:&=&!"
  122.     set "VARI_%%a=!VARI_%%a:%=%!"
  123. )
  124. ::=======================================================
  125. set "RELEASE_VER=%VARI_1%"
  126. set "SCRIPT_DL_LINK=%VARI_2%"
  127. set "MD5_SCRIPT=%VARI_3%"
  128. ::set "Tvar4=%VARI_4%"
  129. ::set "Tvar5=%VARI_5%"
  130. ::set "Tvar6=%VARI_6%"
  131.  
  132. echo set "RELEASE_VER=%VARI_1%" >_tool\last_update_check.cmd
  133. echo set "SCRIPT_DL_LINK=%VARI_2%">>_tool\last_update_check.cmd
  134. echo set "MD5_SCRIPT=%VARI_3%">>_tool\last_update_check.cmd
  135. ::echo set "Tvar4=%VARI_4%">>_tool\last_update_check.cmd
  136. ::echo set "Tvar5=%VARI_5%">>_tool\last_update_check.cmd
  137. ::echo set "Tvar6=%VARI_6%">>_tool\last_update_check.cmd
  138. ::=======================================================
  139. "%wz%" PB close
  140.  
  141. set UTD=0
  142. IF %RELEASE_VER% LSS %CUR_SCRIPT_VER% (
  143.     For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
  144.     set "wabmp=%cd%\_tool\bg_warn.bmp"
  145.     set watext=업데이트 확인 실패~~현재 사용중인 스크립트는 테스트 버전입니다.~[등록된 최신 버전보다 더 버전이 높음]~~업데이트 확인은 하루에 한번만 시도합니다.
  146.     %top%
  147.     "%wz%" NOBACK FINISH NOCANCEL TB
  148.     goto SKIP_UPDATE_CHECK
  149. )
  150.  
  151. IF %RELEASE_VER% EQU NULL goto VCEND
  152. IF %RELEASE_VER% GTR %CUR_SCRIPT_VER% (
  153.     echo set "RELEASE_VER=%VARI_1%" >_tool\NV.cmd
  154.     echo set "SCRIPT_DL_LINK=%VARI_2%">>_tool\NV.cmd
  155.     echo set "MD5_SCRIPT=%VARI_3%">>_tool\NV.cmd
  156.     echo set "Tvar4=%VARI_4%">>_tool\NV.cmd
  157.     echo set "Tvar5=%VARI_5%">>_tool\NV.cmd
  158.     echo set "Tvar6=%VARI_6%">>_tool\NV.cmd
  159.     goto NEW_VER_FOUND
  160. )
  161. IF %RELEASE_VER% EQU %CUR_SCRIPT_VER% set UTD=1
  162.  
  163. :VCEND
  164. For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
  165. IF %UTD% equ 1 (
  166.     set "wabmp=%cd%\_Tool\bg_FINISH.bmp"
  167.     set watext=업데이트 확인 완료~~현재 사용중인 스크립트는 최신 버전입니다.~업데이트 확인은 하루에 한번만 시도합니다.
  168. )
  169. IF %UTD% equ 0 (
  170.     set "wabmp=%cd%\_Tool\bg_WARN.bmp"
  171.     set watext=업데이트 확인 실패~~스크립트 버전 정보를 얻는데 실패하였습니다.~업데이트 확인은 하루에 한번만 시도합니다.
  172. )
  173. %top%
  174. "%wz%" NOBACK FINISH NOCANCEL TB
  175.  
  176. ::업데이트 확인 끝
  177. :SKIP_UPDATE_CHECK
  178.  
  179. :: =====================================================================================
  180. :: 경로 검색 / 변수 설정
  181. :: =====================================================================================
  182. ::백업경로
  183. SET "Backup_Dir=%cd%\_Backup"
  184.  
  185. ::망전찾기
  186. IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
  187.     SET Heroes_REG=HKLM\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR
  188. ) else (
  189.     SET Heroes_REG=HKLM\SOFTWARE\Nexon\Heroes\ko-KR
  190. )
  191. FOR /F "TOKENS=3 USEBACKQ" %%A IN (`REG QUERY %Heroes_REG% /v RootPath 2^>nul`) DO (
  192.     set "Heroes_Root=%%A"
  193. )
  194.  
  195. ::마영전 찾을 수 없음
  196. IF "%Heroes_Root%" EQU "" GOTO Heroes_Not_Found
  197.  
  198.  
  199. ::NGM찾기
  200. SET NGM=
  201. IF EXIST "%Heroes_Root%\NGM.exe" SET "NGM=%Heroes_Root%\NGM.exe"
  202. IF "%NGM%" EQU "" (
  203.     IF EXIST "C:\ProgramData\Nexon\NGM\NGM.exe" SET "NGM=C:\ProgramData\Nexon\NGM\NGM.exe"
  204. )
  205.  
  206. ::세부경로
  207. set "Heroes_Ko_KR=%Heroes_Root%\ko-KR"
  208. set "Heroes_cfg=%Heroes_Ko_KR%\cfg"
  209. set "Heroes_bin=%Heroes_Ko_KR%\bin"
  210. set "Heroes_sound=%Heroes_Ko_KR%\sound"
  211. set "Heroes_sound_amb=%Heroes_Ko_KR%\sound\ambient"
  212. set "Heroes_sound_bgm=%Heroes_Ko_KR%\sound\bgm"
  213. set "configTXT=%Heroes_bin%\config_material.txt"
  214. ::레지스트리 등록용 슬래시 두개로 변환
  215. set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
  216.  
  217. ::임시파일 제거
  218. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  219.  
  220. :: =====================================================================================
  221. :: 작업 선택
  222. :: =====================================================================================
  223. :SELECT
  224. set wabmp=_tool\BG.bmp
  225. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  226. set waoutput=
  227. set wafile=
  228. set wainput=
  229. set walabels=
  230. set waoutnum=
  231.  
  232. set waoutnum=0
  233. set watext=원하는 작업을 선택하세요
  234. SET WAINPUT=배경음악,환경음악 교체/제거;배경음악,환경음악 복원;NGM으로 게임 패치 받기;캐릭터 조작키 설정 파일 관련 메뉴;그래픽 옵션 관련 메뉴;레지스트리 백업
  235. %top%
  236. "%wz%" NOBACK RB
  237. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  238. IF %ERRORLEVEL% EQU 2 goto EXIT
  239. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  240. @call "%wabat%"
  241. del /q "%wabat%"
  242. IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
  243. set job=0
  244. IF %waoutnum% EQU 0 GOTO JOB0
  245. IF %waoutnum% EQU 1 GOTO JOB1
  246. IF %waoutnum% EQU 2 GOTO JOB2
  247. IF %waoutnum% EQU 3 GOTO JOB3
  248. IF %waoutnum% EQU 4 GOTO JOB4
  249. IF %waoutnum% EQU 5 GOTO JOB5
  250.  
  251. :: =====================================================================================
  252. :: Job0 - BGM,Ambient[환경 소음] 제거
  253. :: =====================================================================================
  254. :JOB0
  255. set wabmp=_tool\BG.bmp
  256. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  257. set waoutput=
  258. set wafile=
  259. set wainput=
  260. set walabels=
  261. set waoutnum=
  262.  
  263. FOR /F "Tokens=* Usebackq" %%a in ("_Resource\Sound\Mute\Mute_List.txt") DO (
  264.     set TmpStr=
  265.     Set TmpStr=%%~nxa
  266.     IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~[무음] !TmpStr!
  267.     IF "!Wainput!" EQU "" SET Wainput=[무음] !TmpStr!
  268. )
  269.  
  270. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "_Resource\Sound\Change"`) DO (
  271.     set TmpStr=
  272.     Set TmpStr=%%~nxa
  273.     IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~[교체] !TmpStr!
  274.     IF "!Wainput!" EQU "" SET Wainput=[교체] !TmpStr!
  275. )
  276.  
  277. set watext=교체될 소리 파일의 목록이 아래에 표시됩니다.~경로 : _Resource\Sound\~~원본 파일은 자동으로 백업됩니다.~백업 경로:_Backup\Sound\
  278. %top%
  279. "%wz%" FT
  280. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  281. IF %ERRORLEVEL% EQU 2 goto EXIT
  282. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  283. @call "%wabat%"
  284. del /q "%wabat%"
  285.  
  286. FOR /F "Tokens=* Usebackq" %%a in ("_Resource\Sound\Mute\Mute_List.txt") DO (
  287.     IF EXIST "%Heroes_sound_bgm%\%%a" (
  288.         IF NOT EXIST "%Backup_Dir%\Sound\Mute\" MD "%Backup_Dir%\Sound\Mute\"
  289.         IF NOT EXIST "%Backup_Dir%\Sound\Mute\%%a" ECHO F|XCOPY /Y "%Heroes_sound_bgm%\%%a" "%Backup_Dir%\Sound\Mute\"
  290.         IF /i %%~xa EQU .mp3 echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.mp3" "%Heroes_sound_bgm%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Sound] %%a"
  291.         IF /i %%~xa EQU .wav echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.wav" "%Heroes_sound_bgm%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Sound] %%a"
  292.     )
  293.     IF EXIST "%Heroes_sound_amb%\%%a" (
  294.         IF NOT EXIST "%Backup_Dir%\Sound\Mute\Amb\" MD "%Backup_Dir%\Sound\Mute\Amb\"
  295.         IF NOT EXIST "%Backup_Dir%\Sound\Mute\Amb\%%a" ECHO F|XCOPY /Y "%Heroes_sound_amb%\%%a" "%Backup_Dir%\Sound\Mute\Amb\"
  296.         IF /i %%~xa EQU .mp3 echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.mp3" "%Heroes_sound_amb%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Ambient] %%a "
  297.         IF /i %%~xa EQU .wav echo f|xcopy /y "%CurDir%\_Resource\Sound\Mute\mute.wav" "%Heroes_sound_amb%\%%a"&&Set "WhatIDid=!WhatIDid!~[무음/Ambient] %%a"
  298.     )
  299. )
  300.  
  301. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "_Resource\Sound\Change"`) DO (
  302.     FOR /F "Tokens=* Usebackq" %%b in (`DIR /b /s "%Heroes_sound%\%%~nxa"`) DO (
  303.         IF EXIST "%%b" (
  304.             IF NOT EXIST "%Backup_Dir%\Sound\Change\" MD "%Backup_Dir%\Sound\Change\"
  305.             IF NOT EXIST "%Backup_Dir%\Sound\Change\%%~nxa" ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Sound\Change\"
  306.             ECHO F|XCOPY /Y "%%a" "%%b"&&Set "WhatIDid=!WhatIDid!~[교체] %%~nxa"
  307.         )
  308.     )
  309. )
  310.  
  311. set FinishText=작업을 완료하였습니다.~~원본 파일 백업 경로 :~%Backup_Dir%\Sound\~~교체된 파일 목록~------------------------%WhatIDid%
  312. GOTO FINISH
  313.  
  314. :: =====================================================================================
  315. :: Job1 - BGM 복원
  316. :: =====================================================================================
  317. :JOB1
  318. set wabmp=_tool\BG.bmp
  319. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  320. set waoutput=
  321. set wafile=
  322. set wainput=
  323. set walabels=
  324. set waoutnum=
  325.  
  326. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s /a-d "_Backup\Sound"`) DO (
  327.     set TmpStr=
  328.     Set TmpStr=%%~nxa
  329.     IF "!Wainput!" NEQ "" SET Wainput=!Wainput!~!TmpStr!
  330.     IF "!Wainput!" EQU "" SET Wainput=!TmpStr!
  331. )
  332.  
  333. set watext=복원할 BGM 파일의 목록이 아래에 표시됩니다.~~백업 경로 : _Backup\Sound\Change~복원 경로 : %Heroes_root%\ko-KR\sound
  334. %top%
  335. "%wz%" FT
  336. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  337. IF %ERRORLEVEL% EQU 2 goto EXIT
  338. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  339. @call "%wabat%"
  340. del /q "%wabat%"
  341. set WhatIDid=
  342.  
  343. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s /a-d "_Backup\Sound"`) DO (
  344.     IF EXIST "%Heroes_sound_bgm%\%%~nxa" (
  345.         echo f|xcopy /y "%%a" "%Heroes_sound_bgm%\%%~nxa" &&Set "WhatIDid=!WhatIDid!~%%~nxa"
  346.     )
  347.     IF EXIST "%Heroes_sound_amb%\%%~nxa" (
  348.         echo f|xcopy /y "%%a" "%Heroes_sound_amb%\%%~nxa" &&Set "WhatIDid=!WhatIDid!~%%~nxa"
  349.     )
  350. )
  351.  
  352. set FinishText=복원을 완료하였습니다.~~사용한 백업 파일 경로 : _Backup\Sound ~~복원한 파일 목록~------------------------%WhatIDid%
  353. GOTO FINISH
  354.  
  355. :: =====================================================================================
  356. :: Job2 - 패치 미리받기
  357. :: =====================================================================================
  358.  
  359. :JOB2
  360. START "" "%NGM%" -mode:patch -game:73739 -patchdir:'%Heroes_Root%' -patchurl:'http://heroes.dn.nexoncdn.co.kr/ko-KR/Patch_Full/PatchData'
  361. set FinishText=NGM.exe에 패치 명령을 보냈습니다.~~잠시 후 NGM이 실행됩니다.
  362. GOTO FINISH
  363.  
  364. :: =====================================================================================
  365. :: Job3 - 캐릭터 키 설정 파일 관련 메뉴
  366. :: =====================================================================================
  367. :JOB3
  368. set "Wafile=%temp%\wafile.txt"
  369. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  370. set wabmp=_tool\BG.bmp
  371. set waoutput=
  372. set wainput=
  373. set walabels=
  374. set waoutnum=
  375. set waoutnum=0
  376. set watext=원하는 작업을 선택하세요
  377. SET WAINPUT=키 설정 파일 백업;키 설정 파일 복원;키 설정파일 다른 캐릭터에 붙여넣기
  378. %top%
  379. "%wz%" RB
  380. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  381. IF %ERRORLEVEL% EQU 2 goto EXIT
  382. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  383. @call "%wabat%"
  384. del /q "%wabat%"
  385. IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
  386. set job=0
  387. IF %waoutnum% EQU 0 GOTO JOB3_1
  388. IF %waoutnum% EQU 1 GOTO JOB3_2
  389. IF %waoutnum% EQU 2 GOTO JOB3_3
  390.  
  391. ::3_1 백업
  392.  
  393. :JOB3_1
  394. set waoutput=
  395. set wainput=
  396. set walabels=
  397. set waoutnum=
  398. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  399. IF EXIST "%temp%\charaCFG*.txt" DEL /Q "%temp%\charaCFG*.txt"
  400. set watext=키 설정을 백업할 캐릭터를 선택하세요~~[Ctrl] : 복수 선택~[Shift] : 클릭부터 다음 클릭까지 모두 선택
  401.  
  402. set i=0
  403. set j=1
  404. ECHO ▶저장된 키 설정 파일 모두 백업하기>>"%Wafile%"
  405. ECHO ---------------------------------->>"%Wafile%"
  406. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
  407.     IF /i %%~na NEQ config_env (
  408.         SET /A j=!j!+1
  409.         SET "Chara_Name=%%~na"
  410.         SET "Chara_Name=!Chara_Name:Config_=!"
  411.         echo %%a>%temp%\CharaCFG!j!.txt
  412.         ECHO !Chara_Name!                                                ▶%%a>>"%Wafile%"
  413.     )
  414. )
  415. set WhatIDid=
  416.  
  417. %top%
  418. "%wz%" LB MULTIPLE
  419. IF %ERRORLEVEL% EQU 1 goto JOB3
  420. IF %ERRORLEVEL% NEQ 0 goto EXIT
  421. call "%wabat%"
  422. IF "%waoutput%" EQU "" goto JOB3_1
  423. set COPYALL=0
  424. If /i "%waoutput%" EQU "▶저장된 키 설정 파일 모두 백업하기" set COPYALL=1
  425. If /i "%waoutput%" EQU "----------------------------------" goto JOB3_1
  426. FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
  427.     set "Selected_CFG=%%b"
  428. )
  429. set CFG_Number=%!!%
  430. set CFGNames=
  431. FOR %%Z IN (%CFG_Number%) DO (
  432.     for /f "tokens=* usebackq" %%b in ("%temp%\CharaCFG%%Z.txt") do (
  433.         SET CFGNames=!CFGNames! %%~nb
  434.         SET CFGNames=!CFGNames:Config_=!
  435.     )
  436. )
  437.  
  438. del /q "%wabat%"
  439.  
  440.  
  441. :JOB3_1_SELDIR
  442. set "Wafile=%temp%\wafile2.txt"
  443. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  444. set waoutput=
  445. set wainput=
  446. set walabels=
  447. set waoutnum=
  448. set watext=선택된 캐릭터 목록~!CFGNames!~~--------------------~백업 파일의 저장 경로를 선택해주세요.
  449. IF %COPYALL% EQU 1 set watext=선택된 캐릭터 목록~[모든 캐릭터]~~--------------------~백업 파일의 저장 경로를 선택해주세요.
  450. echo _Backup\Key\%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%>>"%wafile%"
  451. echo _Backup\Key\폴더 이름 직접 입력하기>>"%wafile%"
  452.  
  453. %top%
  454. "%wz%" LB
  455. IF %ERRORLEVEL% EQU 1 goto JOB3_1
  456. IF %ERRORLEVEL% EQU 2 goto EXIT
  457. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  458. @call "%wabat%"
  459. del /q "%wabat%"
  460. IF "%waoutput%" EQU "" GOTO JOB3_1_SELDIR
  461. IF "%waoutput%" EQU "_Backup\Key\폴더 이름 직접 입력하기" GOTO JOB3_1_0_SELDIR_MENU
  462. set "KeyBackupFolderName=%waoutput:_Backup\Key\=\%"
  463. GOTO JOB3_1_Export
  464.  
  465.  
  466. :JOB3_1_0_SELDIR_MENU
  467. set waoutput=
  468. set watext=선택된 캐릭터 목록~!CFGNames!~~--------------------~백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 : !REG3XP0!>~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분
  469. IF %COPYALL% EQU 1 set watext=선택된 캐릭터 목록~[모든 캐릭터]~~--------------------~백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 : ~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분
  470. %top%
  471. "%wz%" EB
  472. IF %ERRORLEVEL% EQU 1 goto JOB3_1_SELDIR
  473. IF %ERRORLEVEL% EQU 2 goto EXIT
  474. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  475. @call "%wabat%"
  476. del /q "%wabat%"
  477. IF "%waoutput%" EQU "" (
  478.     set "waoutput=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분"
  479. )
  480. set "KeyBackupFolderName=\%waoutput%"
  481. set waoutput=
  482.  
  483.  
  484. ::3_1 백업파일 처리
  485. :JOB3_1_Export
  486. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  487. set "Wafile=%temp%\wafile.txt"
  488. set totalcnt=0
  489. IF %COPYALL% EQU 1 GOTO 3_1_COPYALL
  490.  
  491. FOR %%Z IN (%CFG_Number%) DO (
  492.     for /f "tokens=* usebackq" %%b in ("%temp%\CharaCFG%%Z.txt") do (
  493.         IF NOT EXIST "%Backup_Dir%\Key%KeyBackupFolderName%" MD "%Backup_Dir%\Key%KeyBackupFolderName%"
  494.         IF /i %%~xb EQU .cfg IF EXIST "%Backup_Dir%\Key%KeyBackupFolderName%\%%~nxb" (
  495.             set watext=%%~nxb 파일이 이미 존재합니다.~덮어씌우시겠습니까?
  496.             %top%
  497.             "%wz%" MB QUESTION
  498.             IF !ERRORLEVEL! EQU 0 (
  499.                 ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
  500.                 set /a totalcnt=!totalcnt!+1
  501.                 IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
  502.                 IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
  503.             )
  504.         ) ELSE (
  505.             ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
  506.             set /a totalcnt=!totalcnt!+1
  507.             IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
  508.             IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
  509.         )
  510.     )
  511. )
  512.  
  513. GOTO 3_1_FINISH
  514.  
  515. :3_1_COPYALL
  516. FOR /F "Tokens=1,* Delims=▶ Usebackq" %%a in ("%wafile%") DO (
  517.     IF NOT EXIST "%Backup_Dir%\Key%KeyBackupFolderName%" MD "%Backup_Dir%\Key%KeyBackupFolderName%"
  518.     IF /i %%~xb EQU .cfg IF EXIST "%Backup_Dir%\Key%KeyBackupFolderName%\%%~nxb" (
  519.         set watext=%%~nxb 파일이 이미 존재합니다.~덮어씌우시겠습니까?
  520.         %top%
  521.         "%wz%" MB QUESTION
  522.         IF !ERRORLEVEL! EQU 0 (
  523.             ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
  524.             set /a totalcnt=!totalcnt!+1
  525.             IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
  526.             IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
  527.         )
  528.     ) ELSE (
  529.             ECHO F|XCOPY /Y "%%b" "%Backup_Dir%\Key%KeyBackupFolderName%\"
  530.             set /a totalcnt=!totalcnt!+1
  531.             IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxb
  532.             IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxb
  533.         )
  534.     )
  535. )
  536.  
  537. :3_1_FINISH
  538. IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~저장 경로~_Backup\Key%KeyBackupFolderName%~~백업한 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
  539. IF %totalcnt% EQU 0 (
  540.     set warn=1
  541.     set FinishText=백업에 실패했습니다.~원본 또는 대상이 유효하지 않습니다.
  542. )
  543. GOTO FINISH
  544.  
  545.  
  546. FOR %%a in ("%Selected_CFG%") DO (
  547.     set /a totalcnt=!totalcnt!+1
  548.     IF NOT EXIST "%Backup_Dir%\Key\" MD "%Backup_Dir%\Key\"
  549.     IF NOT EXIST "%Backup_Dir%\Key\%%~nxa" (
  550.         ECHO F|XCOPY /Y "%%a" "%Backup_Dir%\Key\"
  551.         IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!~%%~nxa
  552.         IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa     
  553.     )
  554.     IF /i %%~xa EQU .cfg IF EXIST "%Backup_Dir%\Key\%%~nxa" (
  555.         set watext=%%~nxa 파일이 이미 존재합니다.~덮어씌우시겠습니까?
  556.         %top%
  557.         "%wz%" MB QUESTION
  558.         IF !ERRORLEVEL! EQU 0 (
  559.             ECHO F|XCOPY /Y "%%a" "%Backup_Dir%\Key\"
  560.         IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!~%%~nxa
  561.         IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
  562.         )
  563.     )
  564. )
  565.  
  566. ::3_2 복원
  567. :JOB3_2
  568.  
  569. :JOB3_2_SELDIR
  570. set "Wafile=%temp%\wafile.txt"
  571. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  572. set waoutput=
  573. set wainput=
  574. set walabels=
  575. set waoutnum=
  576. FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Key\"`) DO (
  577.     ECHO _Backup\Key\%%a>>"%wafile%"
  578. )
  579. IF NOT EXIST "%wafile%" (
  580.     set watext=백업한 파일이 없습니다.~백업을 먼저 한 이후에 실행해주세요.
  581.     %top%
  582.     "%wz%" MB STOP
  583.     GOTO EXIT
  584. )
  585.  
  586. set watext=복원하려는 파일이 들어있는 폴더를 선택해주세요.
  587.  
  588. %top%
  589. "%wz%" LB
  590. IF %ERRORLEVEL% EQU 1 goto JOB3
  591. IF %ERRORLEVEL% EQU 2 goto EXIT
  592. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  593. @call "%wabat%"
  594. del /q "%wabat%"
  595. IF "%waoutput%" EQU "" GOTO JOB3_2_SELDIR
  596. set "KeyBackupFolderName=%waoutput%"
  597. GOTO JOB3_2_Import
  598.  
  599. :JOB3_2_Import
  600. set WhatIDid=
  601. set totalcnt=0
  602. FOR /F "Tokens=* Usebackq" %%a in (`dir /b /s "%waoutput%"`) DO (
  603.     IF EXIST "%Heroes_cfg%\%%~nxa" (
  604.         set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분_복원 전 자동백업"
  605.         IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
  606.         ECHO F|XCOPY /Y "%Heroes_cfg%\%%~nxa" "%Backup_Dir%\Key\!TBackupFolName!\"
  607.         )
  608.     XCOPY /Y "%%a" "%Heroes_cfg%\"
  609.     set /a totalcnt=!totalcnt!+1
  610.     IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
  611.     IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
  612.     )
  613. )
  614.  
  615. IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~복원에 사용한 폴더 이름 : ~%KeyBackupFolderName%~~복원한 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
  616. IF %totalcnt% EQU 0 (
  617.     set warn=1
  618.     set FinishText=복원에 실패했습니다.~원본 또는 대상이 유효하지 않습니다.
  619. )
  620. GOTO FINISH
  621.  
  622. ::3_3 덮어쓰기
  623. :JOB3_3
  624. set "Wafile=%temp%\wafile.txt"
  625. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  626. IF EXIST "%temp%\charaCFG*.txt" DEL /Q "%temp%\charaCFG*.txt"
  627. set watext=키 설정이 완료된[원본] 캐릭터를 선택하세요.
  628. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
  629.     IF /i %%~na NEQ config_env (
  630.         SET "Chara_Name=%%~na"
  631.         SET "Chara_Name=!Chara_Name:Config_=!"
  632.         ECHO !Chara_Name!                                                ▶%%a>>"%Wafile%"
  633.     )
  634. )
  635. set WhatIDid=
  636. %top%
  637. "%wz%" LB
  638. IF %ERRORLEVEL% EQU 1 goto JOB3_3
  639. IF %ERRORLEVEL% NEQ 0 goto EXIT
  640. call "%wabat%"
  641. IF "%waoutput%" EQU "" goto JOB3_3
  642. set COPYALL=0
  643. FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
  644.     set "Src_CFG=%%b"
  645. )
  646. del /q "%wabat%"
  647.  
  648.  
  649. :JOB3_3_2
  650. set wainput=0
  651. set waoutnum=
  652. set waoutput=
  653. set "Wafile=%temp%\wafile.txt"
  654. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  655. IF EXIST "%temp%\CharaCFG*.txt" DEL /Q "%temp%\CharaCFG*.txt"
  656. set watext=선택된 원본 캐릭터 설정 파일 : %src_cfg%~~키 설정을 덮어쓸[대상] 캐릭터를 선택하세요~~[Ctrl] : 복수 선택~[Shift] : 클릭부터 다음 클릭까지 모두 선택
  657.  
  658. set i=0
  659. set j=1
  660. ECHO ▶모든 캐릭터에 덮어씌우기>>"%Wafile%"
  661. ECHO ---------------------------------->>"%Wafile%"
  662. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
  663.     IF /i %%~na NEQ config_env (
  664.         SET /A j=!j!+1
  665.         SET "Chara_Name=%%~na"
  666.         SET "Chara_Name=!Chara_Name:Config_=!"
  667.         echo %%a>%temp%\CharaCFG!j!.txt
  668.         ECHO !Chara_Name!                                                ▶%%a>>"%Wafile%"
  669.     )
  670. )
  671. set WhatIDid=
  672. %top%
  673. "%wz%" LB MULTIPLE
  674. IF %ERRORLEVEL% EQU 1 goto JOB3_3_2
  675. IF %ERRORLEVEL% NEQ 0 goto EXIT
  676. call "%wabat%"
  677. IF "%waoutput%" EQU "" goto JOB3_3_2
  678. set COPYALL=0
  679. If /i "%waoutput%" EQU "▶모든 캐릭터에 덮어씌우기" set COPYALL=1
  680. If /i "%waoutput%" EQU "----------------------------------" goto JOB3_3_2
  681. FOR /F "Tokens=1,2,* Delims=▶" %%a in ("%waoutput%") DO (
  682.     set "Tgt_CFG=%%b"
  683. )
  684. set Tgt_CFG_Number=%!!%
  685. del /q "%wabat%"
  686.  
  687. :Job_3_3_COPY
  688.  
  689. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  690. set WhatIDid=
  691. set totalcnt=0
  692. IF %COPYALL% EQU 1 GOTO 3_3_COPYALL
  693.  
  694. FOR %%Z IN (%Tgt_CFG_Number%) DO (
  695.     for /f "tokens=* usebackq" %%a in ("%temp%\CharaCFG%%Z.txt") do (
  696.         set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분_덮어쓰기 전 자동백업"
  697.         IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
  698.         ECHO F|XCOPY /Y "%%a" "_Backup\Key\!TBackupFolName!\"
  699.         IF "%%a" NEQ "%Src_CFG%" (
  700.             ECHO F|XCOPY /Y "%Src_CFG%" "%%a"
  701.             set /a totalcnt=!totalcnt!+1
  702.             IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
  703.             IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
  704.         )
  705.     )
  706. )
  707. GOTO Job_3_3_FINISH
  708.  
  709. :3_3_COPYALL
  710. set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분_덮어쓰기 전 자동백업"
  711. IF NOT EXIST "%Backup_Dir%\Key\!TBackupFolName!" MD "%Backup_Dir%\Key\!TBackupFolName!"
  712. FOR /F "Tokens=* Usebackq" %%a in (`Dir /b /s "D:\Heroes\ko-KR\cfg\config_*.cfg"`) DO (
  713.     IF /i %%~na NEQ config_env IF /i "%%a" NEQ "%Src_CFG%" (
  714.     ECHO F|XCOPY /Y "%%a" "_Backup\Key\!TBackupFolName!\"
  715.     ECHO F|XCOPY /Y "%Src_CFG%" "%%a"
  716.     set /a totalcnt=!totalcnt!+1
  717.     IF "!WhatIDid!" NEQ "" SET WhatIDid=!WhatIDid!, %%~nxa
  718.     IF "!WhatIDid!" EQU "" SET WhatIDid=%%~nxa
  719.     )
  720. )
  721.  
  722. :Job_3_3_FINISH
  723. IF %totalcnt% NEQ 0 set FinishText=작업을 완료하였습니다.~~각 캐릭터의 전용 스킬[TAB 등]은 접속 후 수정해주세요.~~원본 캐릭터 설정 파일~%Src_CFG%~~덮어쓴 파일 목록 [총 !totalcnt!개]~------------------------~%WhatIDid%
  724. IF %totalcnt% EQU 0 (
  725.     set warn=1
  726.     set FinishText=시행할 작업이 없습니다.~~선택한 대상이 없거나 원본과 대상이 같습니다.
  727. )
  728. GOTO FINISH
  729.  
  730. :: =====================================================================================
  731. :: Job4 - 그래픽 옵션 관련 메뉴
  732. :: =====================================================================================
  733. :JOB4
  734.  
  735. set "Wafile=%temp%\wafile.txt"
  736. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  737. set wabmp=_tool\BG.bmp
  738. set waoutput=
  739. set wainput=
  740. set walabels=
  741. set waoutnum=
  742. set waoutnum=0
  743.  
  744. set cfg_ro=0
  745. SET TmpStr=
  746. FOR /F "TOKENS=* USEBACKQ" %%A IN (`attrib "%configTXT%"`) DO (
  747.     SET "TmpStr=%%A"
  748.     SET "TmpStr=!TmpStr:%ConfigTXT%=!"
  749. )
  750. FOR /F "TOKENS=* USEBACKQ" %%A IN (`ECHO !TmpStr!^|Findstr R`) DO (
  751.     IF "%%A" NEQ "" set cfg_ro=1
  752. )
  753.  
  754. set watext=원하는 작업을 선택하세요
  755. IF %cfg_ro% EQU 1 SET WAINPUT=그래픽 설정 파일 백업;그래픽 설정 파일 복원;설정 파일 열기;설정 파일 읽기 전용 해제 [현재 읽기 전용]
  756. IF %cfg_ro% EQU 0 SET WAINPUT=그래픽 설정 파일 백업;그래픽 설정 파일 복원;설정 파일 열기;설정 파일 읽기 전용 설정 [현재 쓰기 가능]
  757.  
  758. %top%
  759. "%wz%" RB
  760. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  761. IF %ERRORLEVEL% EQU 2 goto EXIT
  762. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  763. @call "%wabat%"
  764. del /q "%wabat%"
  765. IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
  766. set job=0
  767. IF %waoutnum% EQU 0 GOTO JOB4_1
  768. IF %waoutnum% EQU 1 GOTO JOB4_2
  769. IF %waoutnum% EQU 2 GOTO JOB4_3
  770. IF %waoutnum% EQU 3 GOTO JOB4_4
  771.  
  772. :JOB4_1
  773. ::그래픽 설정 백업
  774. :JOB4_1_SELDIR
  775. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  776. set waoutput=
  777. set wainput=
  778. set walabels=
  779. set waoutnum=
  780. set watext=백업 파일의 저장 경로를 선택해주세요.
  781. echo _Backup\Config\%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%>>"%wafile%"
  782. echo _Backup\Config\폴더 이름 직접 입력하기>>"%wafile%"
  783.  
  784. %top%
  785. "%wz%" LB
  786. IF %ERRORLEVEL% EQU 1 goto JOB4
  787. IF %ERRORLEVEL% EQU 2 goto EXIT
  788. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  789. @call "%wabat%"
  790. del /q "%wabat%"
  791. IF "%waoutput%" EQU "" GOTO JOB4_1_SELDIR
  792. IF "%waoutput%" EQU "_Backup\Config\폴더 이름 직접 입력하기" GOTO JOB4_1_0_SELDIR_MENU
  793. set "ConfigBackupFolderName=%waoutput:_Backup\Config\=\%"
  794. GOTO JOB4_1_Export
  795.  
  796.  
  797. :JOB4_1_0_SELDIR_MENU
  798. set waoutput=
  799. set watext=백업 파일을 저장할 폴더의 이름을 입력해주세요.~~입력하지 않을 경우 기본값 :~%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분
  800. %top%
  801. "%wz%" EB
  802. IF %ERRORLEVEL% EQU 1 goto JOB4_1_0
  803. IF %ERRORLEVEL% EQU 2 goto EXIT
  804. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  805. @call "%wabat%"
  806. del /q "%wabat%"
  807. IF "%waoutput%" EQU "" (
  808.     set "waoutput=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분"
  809. )
  810. set "ConfigBackupFolderName=\%waoutput%"
  811. set waoutput=
  812.  
  813.  
  814. ::4_1 백업파일 처리
  815. :JOB4_1_Export
  816. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  817. set "Wafile=%temp%\wafile.txt"
  818. set totalcnt=0
  819.  
  820. IF NOT EXIST "%Backup_Dir%\Config%ConfigBackupFolderName%" MD "%Backup_Dir%\Config%ConfigBackupFolderName%"
  821. IF NOT EXIST "%Backup_Dir%\Config%ConfigBackupFolderName%\config_material.txt" (
  822.     ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config%ConfigBackupFolderName%\"
  823.     set FinishText=그래픽 설정 파일 백업을 완료했습니다.~~저장 경로 : ~%Backup_Dir%\Config%ConfigBackupFolderName%\
  824.     goto FINISH
  825.     ) ELSE (
  826.     set watitle 백업 경로에 이미 설정파일이 있습니다.~덮어씌우시겠습니까?
  827.     %top%
  828.     "%wz%" MB QUESTION
  829.     IF %ERRORLEVEL% EQU 0 (
  830.         ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config%ConfigBackupFolderName%\"
  831.         set FinishText=그래픽 설정 파일 백업을 완료했습니다.~~저장 경로 : ~%Backup_Dir%\Config%ConfigBackupFolderName%\
  832.         goto FINISH
  833.         ) ELSE (
  834.         set watext=작업을 취소했습니다.
  835.         %top%
  836.         "%wz%" MB STOP
  837.         GOTO EXIT
  838.         )
  839. )
  840.  
  841.  
  842. ::그래픽 설정 복원
  843. :JOB4_2
  844.  
  845. :JOB4_2_SELDIR
  846. set "Wafile=%temp%\wafile.txt"
  847. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  848. set waoutput=
  849. set wainput=
  850. set walabels=
  851. set waoutnum=
  852. FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Config\"`) DO (
  853.     ECHO _Backup\Config\%%a>>"%wafile%"
  854. )
  855. IF NOT EXIST "%wafile%" (
  856.     set watext=백업한 파일이 없습니다.~백업을 먼저 한 이후에 실행해주세요.
  857.     %top%
  858.     "%wz%" MB STOP
  859.     GOTO EXIT
  860. )
  861.  
  862. set watext=복원하려는 파일이 들어있는 폴더를 선택해주세요.
  863.  
  864. %top%
  865. "%wz%" LB
  866. IF %ERRORLEVEL% EQU 1 goto JOB4
  867. IF %ERRORLEVEL% EQU 2 goto EXIT
  868. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  869. @call "%wabat%"
  870. del /q "%wabat%"
  871. IF "%waoutput%" EQU "" GOTO job4_2_SELDIR
  872. set "ConfigBackupFolderName=%waoutput%"
  873. GOTO job4_2_Import
  874.  
  875. :job4_2_Import
  876. set WhatIDid=
  877. set totalcnt=0
  878.  
  879. set "TBackupFolName=%date:~0,2%%date:~3,2%%date:~6,2%_%date:~9,1%_%time:~0,2%%time:~3,2%분_복원 전 자동백업"
  880. IF NOT EXIST "%Backup_Dir%\Config\!TBackupFolName!" MD "%Backup_Dir%\Config\!TBackupFolName!"
  881. ECHO F|XCOPY /Y "%configTXT%" "%Backup_Dir%\Config\!TBackupFolName!"
  882. ECHO F|XCOPY /Y "%ConfigBackupFolderName%\config_material.txt" "%configTXT%"
  883. set FinishText=그래픽 설정 파일을 복원했습니다.~~복원에 사용한 폴더 : ~%ConfigBackupFolderName%
  884. GOTO FINISH
  885.  
  886. :JOB4_3
  887. start "" "%configTXT%"
  888. GOTO JOB4
  889.  
  890. :JOB4_4
  891.  
  892. IF %cfg_ro% EQU 1 (
  893.     ATTRIB -R "%configTXT%"
  894.     set FinishText=~그래픽 설정 파일에 읽기 전용을 해제했습니다.~~경로 : %ConfigTXT%~명령 : ATTRIB -R [...]config_material.txt
  895.     goto Finish
  896. )
  897.  
  898.  
  899. IF %cfg_ro% EQU 0 (
  900.     ATTRIB +R "%configTXT%"
  901.     set FinishText=~config_material.txt는 이제 읽기 전용입니다.~~경로 : %ConfigTXT%~명령 : ATTRIB +R [...]config_material.txt
  902.     goto Finish
  903. )
  904. GOTO FINISH
  905.  
  906. :: =====================================================================================
  907. :: Job5 - 레지스트리
  908. :: =====================================================================================
  909. :JOB5
  910. set wabmp=_tool\BG.bmp
  911. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  912. set waoutput=
  913. set wafile=
  914. set wainput=
  915. set walabels=
  916. set waoutnum=
  917.  
  918. set "Heroes_Root=%Heroes_Root:\heroes.exe=%"
  919. set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
  920. set "Heroes_Root_NSC=%Heroes_Root:\=_%"
  921. set result=
  922. %extd% /strreplace %Heroes_Root_NSC% ^: @
  923. set "Heroes_Root_NSC=%result%"
  924. set result=
  925. set "RegFileName=%Heroes_Root_NSC%.reg"
  926.  
  927. IF NOT EXIST "%Backup_Dir%\Reg\" MD "%Backup_Dir%\Reg\"
  928. ECHO Windows Registry Editor Version 5.00>"%Backup_Dir%\Reg\!RegFileName!"
  929. IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
  930.     ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
  931. ) ELSE (
  932.     ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
  933. )
  934. ECHO "RootPath"="%Heroes_Root_DBS%">>"%Backup_Dir%\Reg\!RegFileName!"
  935. ECHO "Icon"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe,0">>"%Backup_Dir%\Reg\!RegFileName!"
  936. ECHO "IconDestPath0"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Nexon\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
  937. ECHO "IconDestPath1"="C:\\Users\\Public\\Desktop\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
  938. ECHO "Executable"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe">>"%Backup_Dir%\Reg\!RegFileName!"
  939. set FinishText=마영전 경로 정보를 담은 레지스트리를 백업했습니다.~~경로 : ~_Backup\Reg\!RegFileName!~~복구 메뉴는 레지스트리를 찾을 수 없을때만 표시됩니다.
  940. goto FINISH
  941.  
  942.  
  943.  
  944.  
  945. set FinishText=작업을 완료하였습니다.~~교체된 파일 목록~------------------------%WhatIDid%
  946. GOTO FINISH
  947.  
  948. :: =====================================================================================
  949. :: FINISH - 완료창
  950. :: =====================================================================================
  951. :FINISH
  952. set wabmp=_Tool\BG_FINISH.bmp
  953.  
  954. set waoutput=
  955. set wafile=
  956. set wainput=
  957. set walabels=
  958. set waoutnum=
  959.  
  960. "%wz%" PB CLOSE
  961. set "Watext=%FinishText%"
  962. set "wabmp=%CD%\_tool\BG_FINISH.bmp"
  963. IF "%warn%" EQU "1" set "wabmp=%CD%\_tool\BG_warn.bmp"
  964. %top%
  965. set walabels=처음으로(^&R);2;완료(^&F)
  966. %top%
  967. "%wz%" FINISH NOCANCEL TB
  968. IF %ERRORLEVEL% EQU 1 GOTO SCRIPT_RESTART
  969. GOTO EXIT
  970.  
  971.  
  972. :: =====================================================================================
  973. ::  오류창
  974. :: =====================================================================================
  975. :UNZIP_ERROR
  976. color 4f
  977. cls
  978. echo.
  979. echo  
  980. echo   Tool 폴더를 찾을 수 없음
  981. echo  
  982. echo.
  983. echo   배치파일 실행에 필요한 파일을 찾을 수 없습니다.
  984. echo   압축파일 내용 모두를 압축 해제해주세요.
  985. echo.
  986. echo   아무 키나 누르면 창이 닫힙니다.
  987. pause>nul
  988. GOTO exit
  989.  
  990.  
  991. :Heroes_Not_Found
  992. set "wabmp=%CD%\_tool\BG_warn.bmp"
  993. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  994. set wafile=
  995. set waoutput=
  996. set wainput=
  997. set walabels=
  998. set waoutnum=
  999. set waoutnum=0
  1000. set watext=마영전 설치 경로를 찾을 수 없습니다.~~레지스트리 관련 메뉴만 사용 가능합니다.~원하는 작업을 선택해주세요.
  1001. SET WAINPUT=백업된 파일로 레지스트리 복원;전체 드라이브를 검색하여 레지스트리 등록 [자동];마영전 레지스트리 등록 [수동]
  1002. %top%
  1003. "%wz%" NOBACK RB
  1004. IF %ERRORLEVEL% EQU 1 goto SCRIPT_RESTART
  1005. IF %ERRORLEVEL% EQU 2 goto EXIT
  1006. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  1007. @call "%wabat%"
  1008. del /q "%wabat%"
  1009. IF "%waoutput%" EQU "" GOTO SCRIPT_RESTART
  1010. set job=0
  1011. set wabmp=_tool\bg.bmp
  1012. IF %waoutnum% EQU 0 GOTO HNF1
  1013. IF %waoutnum% EQU 1 GOTO HNF2
  1014. IF %waoutnum% EQU 2 GOTO HNF3
  1015.  
  1016. :HNF1
  1017. set "wafile=%temp%\wafile.txt"
  1018. IF EXIST "%wafile%" DEL /Q "%Wafile%"
  1019. set wainput=
  1020.  
  1021. FOR /F "Tokens=* Usebackq" %%a in (`dir /b "%Backup_Dir%\Reg\*.reg"`) DO (
  1022.     ECHO _Backup\Reg\%%a>>"%wafile%"
  1023. )
  1024.  
  1025. IF NOT EXIST "%wafile%" (
  1026.     set watext=백업한 파일이 없습니다.~다른 메뉴를 선택해주세요.
  1027.     %top%
  1028.     "%wz%" MB STOP
  1029.     GOTO SCRIPT_RESTART
  1030. )
  1031.  
  1032. set watext=복원하려는 레지스트리 파일을 선택해주세요.
  1033. %top%
  1034. "%wz%" LB
  1035. IF %ERRORLEVEL% EQU 1 goto Heroes_Not_Found
  1036. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  1037. @call "%wabat%"
  1038. del /q "%wabat%"
  1039. IF "%waoutput%" EQU "" GOTO HNF1
  1040. FOR /F "Tokens=*" %%a in ("%waoutput%") do (
  1041.     set "Heroes_root=%%~na"
  1042. )
  1043. set "Heroes_root=%Heroes_root:_=\%"
  1044. set result=
  1045. %extd% /strreplace %Heroes_Root% @ ^:
  1046. set "Heroes_Root=%result%"
  1047. IF NOT EXIST "%Heroes_root%\ko-KR\heroes.exe" GOTO HNF_ERR
  1048. Regedit /s "%waoutput%"
  1049. set FinishText=마영전 설치 경로를 찾았습니다.~~레지스트리가 등록되었습니다.~경로 : %heroes_Root%
  1050. goto FINISH
  1051.  
  1052.  
  1053.  
  1054. :HNF2
  1055. set watext=마영전이 설치된 경로를 검색중입니다,~잠시만 기다려주세요...
  1056. %top%
  1057. "%wz%" PB OPEN
  1058. set Progress=0
  1059. set Heroes_Root=
  1060.  
  1061. FOR /F "Tokens=1 usebackq skip=1" %%a in (`wmic logicaldisk get caption`) do (
  1062.     set DrvCnt=0
  1063.     set /a DrvCnt=!DrvCnt!+1
  1064.     set /A PPD=100/!DRVCnt!
  1065. )
  1066.  
  1067. 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 (
  1068.     set i=0
  1069.     set /a i=!i!+1
  1070.     set watext=마영전이 설치된 경로를 검색중입니다,~잠시만 기다려주세요...~~%%a:에서 마영전 설치 폴더 찾는 중..[!i!/!drvcnt!]
  1071.     IF EXIST "%%a:" for /f "tokens=* usebackq" %%i in (`dir /b /s %%a:\heroes.exe^|findstr /i /v "test Debug"`) do (
  1072.         set "Heroes_Root=%%i"
  1073.     )
  1074.     set /a Progress=!Progress!+!ppd!
  1075.     start "" "%wz%" PB UPDATE !Progress!
  1076.     IF "!Heroes_Root!" NEQ "" (
  1077.         "%wz%" PB CLOSE
  1078.         goto HNF_REG_ADD
  1079.     )
  1080. )
  1081. "%wz%" PB CLOSE
  1082. GOTO HNF_ERR
  1083.  
  1084. :HNF3
  1085. set waoutput=
  1086. set wainput=
  1087. set heroes_root=
  1088. set watext=마영전이 설치된 경로를 선택해주세요.
  1089. %top%
  1090. "%wz%" FB DIR
  1091. IF %ERRORLEVEL% EQU 1 goto Heroes_Not_Found
  1092. IF %ERRORLEVEL% EQU 2 goto EXIT
  1093. IF %ERRORLEVEL% NEQ 0 GOTO EXIT
  1094. @call "%wabat%"
  1095. del /q "%wabat%"
  1096. IF "%waoutput%" EQU "" GOTO HNF3
  1097. set job=0
  1098. for /f "tokens=* usebackq" %%i in (`dir /b /s "%waoutput%\heroes.exe"^|findstr /i /v "test Debug"`) do (
  1099.     set "Heroes_Root=%%i"
  1100. )
  1101. IF "%Heroes_Root%" NEQ "" GOTO HNF_REG_ADD
  1102. GOTO HNF_ERR
  1103.  
  1104. :HNF_REG_ADD
  1105. set "Heroes_Root=%Heroes_Root:\ko-KR\heroes.exe=%"
  1106.  
  1107.  
  1108. set "Heroes_Root_DBS=%Heroes_Root:\=\\%"
  1109. set "Heroes_Root_NSC=%Heroes_Root:\=_%"
  1110. set result=
  1111. %extd% /strreplace %Heroes_Root_NSC% ^: @
  1112. set "Heroes_Root_NSC=%result%"
  1113. set result=
  1114.  
  1115. set "RegFileName=%Heroes_Root_NSC%.reg"
  1116.  
  1117. IF NOT EXIST "%Backup_Dir%\Reg\" MD "%Backup_Dir%\Reg\"
  1118.  
  1119. ECHO Windows Registry Editor Version 5.00>"%Backup_Dir%\Reg\!RegFileName!"
  1120. IF EXIST "%SYSTEMDRIVE%\WINDOWS\SYSWOW64\" (
  1121.     ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
  1122. ) ELSE (
  1123.     ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Heroes\ko-KR]>>"%Backup_Dir%\Reg\!RegFileName!"
  1124. )
  1125. ECHO "RootPath"="%Heroes_Root_DBS%">>"%Backup_Dir%\Reg\!RegFileName!"
  1126. ECHO "Icon"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe,0">>"%Backup_Dir%\Reg\!RegFileName!"
  1127. ECHO "IconDestPath0"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Nexon\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
  1128. ECHO "IconDestPath1"="C:\\Users\\Public\\Desktop\\마비노기 영웅전">>"%Backup_Dir%\Reg\!RegFileName!"
  1129. ECHO "Executable"="%Heroes_Root_DBS%\\ko-KR\\heroes.exe">>"%Backup_Dir%\Reg\!RegFileName!"
  1130. regedit /s "%Backup_Dir%\Reg\!RegFileName!"
  1131. set FinishText=마영전 설치 경로를 찾았습니다.~~레지스트리가 등록되었습니다.~경로 : %heroes_Root%
  1132. goto FINISH
  1133.  
  1134.  
  1135. :HNF_ERR
  1136. set watext=마영전이 설치된 폴더를 찾을 수 없습니다.~제대로 설치되었는지 확인 후 다시 실행해주세요.~~스크립트를 종료합니다.
  1137. set "wabmp=%CD%\_tool\BG_warn.bmp"
  1138. %top%
  1139. start "" "%wz%" NOBACK NOCANCEL FINISH TB
  1140. IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
  1141. endlocal
  1142. EXIT
  1143.  
  1144.  
  1145.  
  1146. :: =====================================================================================
  1147. ::  업데이트 실행
  1148. :: =====================================================================================
  1149.  
  1150. :NEW_VER_FOUND
  1151. color 2f
  1152. "%wz%" PB CLOSE
  1153. set watext=최신 버전으로 업데이트가 가능합니다.~~현재 버전 : %CUR_SCRIPT_VER%~최신 버전 : %RELEASE_VER%~~다음을 누르면 업데이트를 진행합니다.
  1154. %top%
  1155. "%wz%" NOBACK TB
  1156. IF %ERRORLEVEL% EQU 2 GOTO SKIP_UPDATE_CHECK
  1157. IF "%MD5_SCRIPT%" NEQ "" goto UPDATE_DL
  1158. exit
  1159.  
  1160. :UPDATE_DL
  1161. setlocal enabledelayedexpansion
  1162. set TFILE=mang.7z
  1163.  
  1164.  
  1165.  
  1166. for /l %%a in (1,1,2) do (
  1167.     IF "%%a" EQU "3" goto DL_FAIL
  1168.     IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
  1169.     start "" "%wz%" PB OPEN
  1170.     IF %%a EQU 2 start "" "%wz%" PB UPDATE 50
  1171.     set watext=최신 버전 스크립트를 다운로드 합니다.~~다운로드 시도 [%%a/2]
  1172.     echo.
  1173.     echo  
  1174.     echo   최신 패치 스크립트 다운로드
  1175.     echo  
  1176.     echo.
  1177.     echo   업데이트 서버로부터 성공적으로 패치 다운로드 링크를 받았습니다.
  1178.     echo.
  1179.     echo   다운로드 시도... [%%a/2]
  1180.     echo.
  1181.     powershell.exe -c "(new-object System.Net.WebClient).DownloadFile(%SCRIPT_DL_LINK%’,’%temp%\mang.7z’)"
  1182.     "_Tool\hashdeep.exe" -c md5 -s -b "%temp%\%TFILE%" > "%temp%\Hash.txt"
  1183.     for /f "tokens=1-5 delims=, usebackq skip=5" %%a in ("%temp%\Hash.txt") do  (
  1184.         set THash=%%i
  1185.         del /q "%temp%\Hash.txt"
  1186.     )  
  1187.     if /i "%MD5_SCRIPT%" EQU "!THash!" (
  1188.         goto DL_DONE
  1189.     )
  1190. )
  1191.  
  1192. :DL_DONE
  1193. "%wz%" PB CLOSE
  1194. set "wz=%cd%\_tool\wizapp.exe"
  1195. :: 업데이트 임시파일 초기화
  1196. DEL /Q "%temp%\tistory*.txt"
  1197. For /f "tokens=1-3 delims=/ " %%a in ('date /t') do echo set last_update_check=%%a%%b%%c>>"_tool\last_update_check.cmd"
  1198. IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
  1199. pushd %CurDir%
  1200. echo echo off>"%temp%\1.cmd"
  1201. echo color 2f>>"%temp%\1.cmd"
  1202. echo mode con cols=80 lines=30>>"%temp%\1.cmd"
  1203. echo cls>>"%temp%\1.cmd"
  1204. echo echo.>>"%temp%\1.cmd"
  1205. echo echo  >>"%temp%\1.cmd"
  1206. echo echo   스크립트 업데이트 >>"%temp%\1.cmd"
  1207. echo echo  >>"%temp%\1.cmd"
  1208. echo echo.>>"%temp%\1.cmd"
  1209. echo echo   스크립트 업데이트 마무리 작업 중입니다.>>"%temp%\1.cmd"
  1210. echo echo.>>"%temp%\1.cmd"
  1211. echo echo   창을 닫지 말고 잠시만 기다려주세요.>>"%temp%\1.cmd"
  1212. echo ping -n 3 127.1^>nul>>"%temp%\1.cmd"
  1213. echo "%CurDir%\_tool\7z.exe" x -aoa "%temp%\mang.7z" -o"%CurDir%\">>"%temp%\1.cmd"
  1214. echo IF EXIST "%CurDir%\_tool\nv.cmd" del /q "%CurDir%\_tool\nv.cmd">>"%temp%\1.cmd"
  1215. echo del /q "%temp%\mang.7z">>"%temp%\1.cmd"
  1216. echo mode con cols=80 lines=15>>"%temp%\1.cmd"
  1217. echo cls>>"%temp%\1.cmd"
  1218. echo echo.>>"%temp%\1.cmd"
  1219. echo echo  >>"%temp%\1.cmd"
  1220. echo echo   스크립트 업데이트 완료 >>"%temp%\1.cmd"
  1221. echo echo  >>"%temp%\1.cmd"
  1222. echo echo.>>"%temp%\1.cmd"
  1223. echo echo   스크립트 업데이트가 완료되었습니다.>>"%temp%\1.cmd"
  1224. echo set SCRIPTVER=%RELEASE_VER%>>"%temp%\1.cmd"
  1225. echo set watitle=잉여로운 망영전 관리 스크립트>>"%temp%\1.cmd"
  1226. echo set wasig=%SCRIPTVER%>>"%temp%\1.cmd"
  1227. echo set "wz=%CD%\_tool\wizapp.exe">>"%temp%\1.cmd"
  1228. echo set "waico=%CD%\_tool\icon.ico">>"%temp%\1.cmd"
  1229. echo set "wabmp=%CD%\_tool\bg.bmp">>"%temp%\1.cmd"
  1230. echo set "wabat=%temp%\wabat.bat">>"%temp%\1.cmd"
  1231. echo set "watext=스크립트 업데이트를 완료했습니다.~~현재 버전 : %RELEASE_VER%">>"%temp%\1.cmd"
  1232. echo "%wz%" NOBACK FINISH NOCANCEL TB>>"%temp%\1.cmd"
  1233. echo CALL "%cd%\_Start.cmd">>"%temp%\1.cmd"
  1234. start /d "%temp%" 1.cmd
  1235. GOTO EXIT
  1236.  
  1237. :DL_FAIL
  1238. "%wz%" PB CLOSE
  1239. color 4f
  1240. IF %debugmode% NEQ 1 mode con cols=80 lines=15
  1241. IF %debugmode% NEQ 1 ( CLS ) ELSE ( PAUSE )
  1242. set watext=업데이트 실패~~다운로드 중 오류가 발생했습니다.
  1243. set wabmp=_Tool\bg_WARN.bmp
  1244. "%wz%" NOBACK NOCANCEL FINISH FT
  1245. GOTO EXIT
  1246.  
  1247.  
  1248.  
  1249. :: =====================================================================================
  1250. ::  그 외
  1251. :: =====================================================================================
  1252.  
  1253. :EXIT
  1254. endlocal
  1255. exit
  1256.  
  1257. :extd
  1258. @set result=
  1259. @%b2eextd% "%~1" "%~2" "%~3" "%~4" "%~5" "%~6" "%~7" "%~8" "%~9" > "%b2etempfile%"
  1260. @set /p result= < "%b2etempfile%"
  1261. @del "%b2etempfile%"
  1262. @goto:eof
  1263.  
  1264. :window_top
  1265. echo :LOOP >%temp%\top.cmd
  1266. echo timeout 1 ^>nul>>%temp%\top.cmd
  1267. echo tasklist /fi "imagename eq WizApp.exe" ^| findstr WizApp>>%temp%\top.cmd
  1268. echo IF "%%ERRORLEVEL%%" EQU "0" "_Tool\window.exe" /top %%watitle%%>>%temp%\top.cmd
  1269. echo exit /b>>%temp%\top.cmd
  1270. echo GOTO LOOP>>%temp%\top.cmd
  1271. start /min "" cmd.exe /c "%temp%\top.cmd"
  1272. @goto:eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement